{
  "openapi": "3.1.0",
  "info": {
    "title": "AMLOK API",
    "version": "1.0.0",
    "description": "AMLOK API: borrower connections, Insights origination, immutable risk packages and Signal monitoring. Use your institution-issued API origin."
  },
  "x-availability": "published_contract",
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/v1/borrowers": {
      "post": {
        "operationId": "createBorrower",
        "summary": "Create borrower",
        "tags": [
          "Borrowers"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "borrowers:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          },
          {
            "name": "X-AMLOK-Sandbox-Scenario",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "happy_path",
                "source_reauthorization",
                "document_required",
                "missing_financial_input",
                "restricted_report",
                "provider_failure",
                "insufficient_credits",
                "monitoring_alert",
                "payment_return",
                "export_failure"
              ]
            },
            "description": "Sandbox-only deterministic test scenario on borrower creation, persisted for that borrower. On other operations or any Live request, reject before side effects with 400 sandbox_only. Omit for happy_path."
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Borrower"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "bor_synthetic",
                    "type": "business",
                    "subject_id": "biz_synthetic",
                    "created_at": "2026-11-06T12:00:00Z",
                    "client_reference": "LOS-B-0042",
                    "profile": {
                      "type": "business",
                      "business": {
                        "legal_name": "Synthetic Borrower Inc.",
                        "incorporation_country": "CA",
                        "client_reference": "LOS-B-0042"
                      }
                    }
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Register a business or consumer borrower. Registration records institution-supplied identity; it does not assert successful KYB or KYC. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBorrower"
              },
              "example": {
                "type": "business",
                "business": {
                  "legal_name": "Synthetic Borrower Inc.",
                  "incorporation_country": "CA",
                  "client_reference": "LOS-B-0042"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/borrowers\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: createBorrower-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"type\":\"business\",\"business\":{\"legal_name\":\"Synthetic Borrower Inc.\",\"incorporation_country\":\"CA\",\"client_reference\":\"LOS-B-0042\"}}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'createBorrower-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/borrowers', headers=headers, json={'type': 'business', 'business': {'legal_name': 'Synthetic Borrower Inc.', 'incorporation_country': 'CA', 'client_reference': 'LOS-B-0042'}}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"createBorrower-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/borrowers\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"type\": \"business\", \"business\": {\"legal_name\": \"Synthetic Borrower Inc.\", \"incorporation_country\": \"CA\", \"client_reference\": \"LOS-B-0042\"}})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      },
      "get": {
        "operationId": "listBorrower",
        "summary": "List borrowers",
        "tags": [
          "Borrowers"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "borrowers:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "client_reference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "client reference"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Borrower"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "bor_synthetic",
                      "type": "business",
                      "subject_id": "biz_synthetic",
                      "created_at": "2026-11-06T12:00:00Z",
                      "client_reference": "LOS-B-0042",
                      "profile": {
                        "type": "business",
                        "business": {
                          "legal_name": "Synthetic Borrower Inc.",
                          "incorporation_country": "CA",
                          "client_reference": "LOS-B-0042"
                        }
                      }
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "List borrower. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/borrowers\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/borrowers', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/borrowers\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/borrowers/{id}": {
      "get": {
        "operationId": "getBorrower",
        "summary": "Get borrower",
        "tags": [
          "Borrowers"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "borrowers:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Borrower"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "bor_synthetic",
                    "type": "business",
                    "subject_id": "biz_synthetic",
                    "created_at": "2026-11-06T12:00:00Z",
                    "client_reference": "LOS-B-0042",
                    "profile": {
                      "type": "business",
                      "business": {
                        "legal_name": "Synthetic Borrower Inc.",
                        "incorporation_country": "CA",
                        "client_reference": "LOS-B-0042"
                      }
                    }
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get borrower. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/borrowers/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/borrowers/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/borrowers/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/embedding-sessions": {
      "post": {
        "operationId": "createEmbeddingSession",
        "summary": "Create embedding session",
        "tags": [
          "Connections"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "connections:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/EmbeddingSession"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "embs_synthetic",
                    "borrower_id": "bor_synthetic",
                    "status": "created",
                    "launch_url": "https://borrower.example.com/session/synthetic",
                    "expires_at": "2026-11-06T12:15:00Z",
                    "connection_ids": [],
                    "consent_ids": [],
                    "record_version": 1,
                    "embedding_version_id": "embed_synthetic",
                    "purpose": "connect",
                    "origination_id": null,
                    "monitor_id": null,
                    "requirement_id": null,
                    "consent_purposes": [
                      "credit_assessment",
                      "continuous_monitoring"
                    ],
                    "embed_origin": "https://institution.example.com",
                    "return_url": "https://institution.example.com/connected",
                    "failure": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Create a short-lived Integrations Hub session. Send only launch_url to the borrower. AMLOK captures consent and manages provider authorization and ingestion. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEmbeddingSession"
              },
              "example": {
                "borrower_id": "bor_synthetic",
                "embedding_version_id": "embed_synthetic",
                "purpose": "connect",
                "return_url": "https://institution.example.com/connected",
                "consent_purposes": [
                  "credit_assessment",
                  "continuous_monitoring"
                ],
                "embed_origin": "https://institution.example.com"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/embedding-sessions\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: createEmbeddingSession-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"borrower_id\":\"bor_synthetic\",\"embedding_version_id\":\"embed_synthetic\",\"purpose\":\"connect\",\"return_url\":\"https://institution.example.com/connected\",\"consent_purposes\":[\"credit_assessment\",\"continuous_monitoring\"],\"embed_origin\":\"https://institution.example.com\"}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'createEmbeddingSession-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/embedding-sessions', headers=headers, json={'borrower_id': 'bor_synthetic', 'embedding_version_id': 'embed_synthetic', 'purpose': 'connect', 'return_url': 'https://institution.example.com/connected', 'consent_purposes': ['credit_assessment', 'continuous_monitoring'], 'embed_origin': 'https://institution.example.com'}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"createEmbeddingSession-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/embedding-sessions\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"borrower_id\": \"bor_synthetic\", \"embedding_version_id\": \"embed_synthetic\", \"purpose\": \"connect\", \"return_url\": \"https://institution.example.com/connected\", \"consent_purposes\": [\"credit_assessment\", \"continuous_monitoring\"], \"embed_origin\": \"https://institution.example.com\"})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/embedding-sessions/{id}": {
      "get": {
        "operationId": "getEmbeddingSession",
        "summary": "Get embedding session",
        "tags": [
          "Connections"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "connections:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/EmbeddingSession"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "embs_synthetic",
                    "borrower_id": "bor_synthetic",
                    "status": "created",
                    "launch_url": "https://borrower.example.com/session/synthetic",
                    "expires_at": "2026-11-06T12:15:00Z",
                    "connection_ids": [],
                    "consent_ids": [],
                    "record_version": 1,
                    "embedding_version_id": "embed_synthetic",
                    "purpose": "connect",
                    "origination_id": null,
                    "monitor_id": null,
                    "requirement_id": null,
                    "consent_purposes": [
                      "credit_assessment",
                      "continuous_monitoring"
                    ],
                    "embed_origin": "https://institution.example.com",
                    "return_url": "https://institution.example.com/connected",
                    "failure": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Inspect the borrower-specific execution of a Hub configured in the console. Session completion confirms connection setup, not ingestion readiness or underwriting completion. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/embedding-sessions/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/embedding-sessions/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/embedding-sessions/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/connections": {
      "get": {
        "operationId": "listConnections",
        "summary": "List connections",
        "tags": [
          "Connections"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "connections:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Connection"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "con_synthetic",
                      "borrower_id": "bor_synthetic",
                      "integration_id": "bank_synthetic",
                      "status": "connected",
                      "consent_id": "consent_synthetic",
                      "last_successful_sync_at": "2026-11-06T12:00:00Z",
                      "source_as_of": "2026-11-06T12:00:00Z",
                      "coverage": {
                        "start": "2025-11-01T00:00:00Z",
                        "end": "2026-11-01T00:00:00Z"
                      },
                      "missing_reason": null,
                      "record_version": 1,
                      "data_status": "partial"
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Inspect borrower-authorized integrations, connection status, ingestion readiness, freshness and coverage. The Hub performs authorization; this endpoint exposes its result without configuring integrations. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/connections\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/connections', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/connections\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/connections/{id}": {
      "get": {
        "operationId": "getConnection",
        "summary": "Get connection",
        "tags": [
          "Connections"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "connections:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Connection"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "con_synthetic",
                    "borrower_id": "bor_synthetic",
                    "integration_id": "bank_synthetic",
                    "status": "connected",
                    "consent_id": "consent_synthetic",
                    "last_successful_sync_at": "2026-11-06T12:00:00Z",
                    "source_as_of": "2026-11-06T12:00:00Z",
                    "coverage": {
                      "start": "2025-11-01T00:00:00Z",
                      "end": "2026-11-01T00:00:00Z"
                    },
                    "missing_reason": null,
                    "record_version": 1,
                    "data_status": "partial"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Inspect one borrower connection and its collection status. Use a Hub reauthorization session when borrower action is required; no provider credentials are returned. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/connections/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/connections/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/connections/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/consents/{id}": {
      "get": {
        "operationId": "getConsent",
        "summary": "Get consent",
        "tags": [
          "Connections"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "connections:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Consent"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "consent_synthetic",
                    "borrower_id": "bor_synthetic",
                    "status": "active",
                    "purposes": [
                      "credit_assessment",
                      "continuous_monitoring"
                    ],
                    "captured_at": "2026-11-06T12:00:00Z",
                    "expires_at": null,
                    "revoked_at": null,
                    "record_version": 1
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get consent. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/consents/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/consents/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/consents/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/consents/{id}/revoke": {
      "post": {
        "operationId": "revokeConsent",
        "summary": "Revoke consent",
        "tags": [
          "Connections"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "connections:write"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Consent"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "consent_synthetic",
                    "borrower_id": "bor_synthetic",
                    "status": "revoked",
                    "purposes": [
                      "credit_assessment",
                      "continuous_monitoring"
                    ],
                    "captured_at": "2026-11-06T12:00:00Z",
                    "expires_at": null,
                    "revoked_at": "2026-11-06T12:00:00Z",
                    "record_version": 1
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Record withdrawal of authorization and stop future collection covered by that consent. Revocation does not edit historical assessments or serve as a data-deletion command. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeConsent"
              },
              "example": {
                "reason": "Borrower withdrew authorization."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/consents/record_synthetic/revoke\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: revokeConsent-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"reason\":\"Borrower withdrew authorization.\"}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'revokeConsent-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/consents/record_synthetic/revoke', headers=headers, json={'reason': 'Borrower withdrew authorization.'}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"revokeConsent-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/consents/record_synthetic/revoke\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"reason\": \"Borrower withdrew authorization.\"})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/documents": {
      "post": {
        "operationId": "uploadDocument",
        "summary": "Upload document",
        "tags": [
          "Evidence"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "evidence:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted asynchronously; inspect status, not just HTTP success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Document"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "doc_synthetic",
                    "context": "borrower",
                    "borrower_id": "bor_synthetic",
                    "file_name": "financial-statement.pdf",
                    "mime_type": "application/pdf",
                    "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                    "size_bytes": 12500,
                    "status": "processing",
                    "restriction_reason": null,
                    "created_at": "2026-11-06T12:00:00Z",
                    "document_type": "financial_statement",
                    "origination_id": null,
                    "requirement_id": null,
                    "origin": "institution_upload",
                    "record_version": 1,
                    "failure": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Upload borrower evidence or documents supporting a lending product or risk policy. Upload creates a new record; it cannot overwrite an existing document. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/UploadDocument"
              },
              "example": {
                "file": "<binary file bytes>",
                "context": "borrower",
                "borrower_id": "bor_synthetic",
                "document_type": "financial_statement"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/documents\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: uploadDocument-synthetic-0042' \\\n  --form file=@/path/to/financial-statement.pdf \\\n  --form context=borrower \\\n  --form borrower_id=bor_synthetic \\\n  --form document_type=financial_statement"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'uploadDocument-synthetic-0042'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nwith open(\"/path/to/financial-statement.pdf\", \"rb\") as upload:\n    response = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/documents', headers=headers, data={'context': 'borrower', 'borrower_id': 'bor_synthetic', 'document_type': 'financial_statement'}, files={\"file\": upload}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "import { readFile } from \"node:fs/promises\";\nconst headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"uploadDocument-synthetic-0042\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst form = new FormData();\nform.append(\"file\", new Blob([await readFile(\"/path/to/financial-statement.pdf\")]), \"financial-statement.pdf\");\nform.append(\"context\", \"borrower\");\nform.append(\"borrower_id\", \"bor_synthetic\");\nform.append(\"document_type\", \"financial_statement\");\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/documents\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: form\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      },
      "get": {
        "operationId": "listDocuments",
        "summary": "List documents",
        "tags": [
          "Evidence"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "evidence:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          },
          {
            "name": "origination_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "origination id"
          },
          {
            "name": "context",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "borrower",
                "lending_product",
                "risk_policy"
              ]
            },
            "description": "context"
          },
          {
            "name": "document_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "document type"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "processing",
                "available",
                "rejected",
                "restricted"
              ]
            },
            "description": "status"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Document"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "doc_synthetic",
                      "context": "borrower",
                      "borrower_id": "bor_synthetic",
                      "file_name": "financial-statement.pdf",
                      "mime_type": "application/pdf",
                      "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                      "size_bytes": 12500,
                      "status": "available",
                      "restriction_reason": null,
                      "created_at": "2026-11-06T12:00:00Z",
                      "document_type": "financial_statement",
                      "origination_id": null,
                      "requirement_id": null,
                      "origin": "institution_upload",
                      "record_version": 1,
                      "failure": null
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Discover institution uploads, borrower uploads, integration files and generated documents by borrower, origination, context and type. Responses include file status, provenance and association; download through the authorized document endpoint. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/documents\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/documents', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/documents\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/documents/{id}": {
      "get": {
        "operationId": "getDocument",
        "summary": "Get document",
        "tags": [
          "Evidence"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "evidence:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Document"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "doc_synthetic",
                    "context": "borrower",
                    "borrower_id": "bor_synthetic",
                    "file_name": "financial-statement.pdf",
                    "mime_type": "application/pdf",
                    "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                    "size_bytes": 12500,
                    "status": "available",
                    "restriction_reason": null,
                    "created_at": "2026-11-06T12:00:00Z",
                    "document_type": "financial_statement",
                    "origination_id": null,
                    "requirement_id": null,
                    "origin": "institution_upload",
                    "record_version": 1,
                    "failure": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get document. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/documents/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/documents/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/documents/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/documents/{id}/download-links": {
      "post": {
        "operationId": "downloadDocument",
        "summary": "Download document",
        "tags": [
          "Evidence"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "evidence:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DownloadLink"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "url": "https://downloads.example.com/synthetic",
                    "expires_at": "2026-11-06T12:05:00Z",
                    "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                    "mime_type": "application/pdf"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Issue a short-lived download URL for an authorized available file. Recheck source entitlement and borrower access; possession of a document ID alone grants nothing. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DownloadPurpose"
              },
              "example": {
                "purpose": "Institution underwriting review"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/documents/record_synthetic/download-links\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: downloadDocument-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"purpose\":\"Institution underwriting review\"}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'downloadDocument-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/documents/record_synthetic/download-links', headers=headers, json={'purpose': 'Institution underwriting review'}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"downloadDocument-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/documents/record_synthetic/download-links\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"purpose\": \"Institution underwriting review\"})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/lending-product-versions": {
      "post": {
        "operationId": "createLendingProductVersion",
        "summary": "Create lending product version",
        "tags": [
          "Configuration"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "configuration:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/LendingProductVersion"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "lpv_synthetic",
                    "created_at": "2026-11-06T12:00:00Z",
                    "definition": {
                      "external_id": "working-capital",
                      "version": "1",
                      "name": "Working capital loan",
                      "borrower_type": "business",
                      "market": "CA",
                      "currency": "CAD",
                      "product_type": "term_loan",
                      "minimum_amount": {
                        "amount": "10000.00",
                        "currency": "CAD"
                      },
                      "maximum_amount": {
                        "amount": "100000.00",
                        "currency": "CAD"
                      },
                      "minimum_term_months": 6,
                      "maximum_term_months": 24,
                      "repayment_frequency": "monthly",
                      "pricing_schema_id": "pricing_synthetic",
                      "pricing": {
                        "rate_type": "fixed",
                        "annual_interest_rate": "0.12",
                        "amortization_months": 12,
                        "fees": []
                      },
                      "terms_document_ids": []
                    },
                    "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Store an immutable version of a lending product, including eligibility, pricing and repayment terms. This is your lending catalog, not merchant inventory. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LendingProductInput"
              },
              "example": {
                "external_id": "working-capital",
                "version": "1",
                "name": "Working capital loan",
                "borrower_type": "business",
                "market": "CA",
                "currency": "CAD",
                "product_type": "term_loan",
                "minimum_amount": {
                  "amount": "10000.00",
                  "currency": "CAD"
                },
                "maximum_amount": {
                  "amount": "100000.00",
                  "currency": "CAD"
                },
                "minimum_term_months": 6,
                "maximum_term_months": 24,
                "repayment_frequency": "monthly",
                "pricing_schema_id": "pricing_synthetic",
                "pricing": {
                  "rate_type": "fixed",
                  "annual_interest_rate": "0.12",
                  "amortization_months": 12,
                  "fees": []
                },
                "terms_document_ids": []
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/lending-product-versions\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: createLendingProductVersion-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"external_id\":\"working-capital\",\"version\":\"1\",\"name\":\"Working capital loan\",\"borrower_type\":\"business\",\"market\":\"CA\",\"currency\":\"CAD\",\"product_type\":\"term_loan\",\"minimum_amount\":{\"amount\":\"10000.00\",\"currency\":\"CAD\"},\"maximum_amount\":{\"amount\":\"100000.00\",\"currency\":\"CAD\"},\"minimum_term_months\":6,\"maximum_term_months\":24,\"repayment_frequency\":\"monthly\",\"pricing_schema_id\":\"pricing_synthetic\",\"pricing\":{\"rate_type\":\"fixed\",\"annual_interest_rate\":\"0.12\",\"amortization_months\":12,\"fees\":[]},\"terms_document_ids\":[]}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'createLendingProductVersion-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/lending-product-versions', headers=headers, json={'external_id': 'working-capital', 'version': '1', 'name': 'Working capital loan', 'borrower_type': 'business', 'market': 'CA', 'currency': 'CAD', 'product_type': 'term_loan', 'minimum_amount': {'amount': '10000.00', 'currency': 'CAD'}, 'maximum_amount': {'amount': '100000.00', 'currency': 'CAD'}, 'minimum_term_months': 6, 'maximum_term_months': 24, 'repayment_frequency': 'monthly', 'pricing_schema_id': 'pricing_synthetic', 'pricing': {'rate_type': 'fixed', 'annual_interest_rate': '0.12', 'amortization_months': 12, 'fees': []}, 'terms_document_ids': []}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"createLendingProductVersion-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/lending-product-versions\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"external_id\": \"working-capital\", \"version\": \"1\", \"name\": \"Working capital loan\", \"borrower_type\": \"business\", \"market\": \"CA\", \"currency\": \"CAD\", \"product_type\": \"term_loan\", \"minimum_amount\": {\"amount\": \"10000.00\", \"currency\": \"CAD\"}, \"maximum_amount\": {\"amount\": \"100000.00\", \"currency\": \"CAD\"}, \"minimum_term_months\": 6, \"maximum_term_months\": 24, \"repayment_frequency\": \"monthly\", \"pricing_schema_id\": \"pricing_synthetic\", \"pricing\": {\"rate_type\": \"fixed\", \"annual_interest_rate\": \"0.12\", \"amortization_months\": 12, \"fees\": []}, \"terms_document_ids\": []})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      },
      "get": {
        "operationId": "listLendingProductVersion",
        "summary": "List lending product versions",
        "tags": [
          "Configuration"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "configuration:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "external_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "external id"
          },
          {
            "name": "version",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "version"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LendingProductVersion"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "lpv_synthetic",
                      "created_at": "2026-11-06T12:00:00Z",
                      "definition": {
                        "external_id": "working-capital",
                        "version": "1",
                        "name": "Working capital loan",
                        "borrower_type": "business",
                        "market": "CA",
                        "currency": "CAD",
                        "product_type": "term_loan",
                        "minimum_amount": {
                          "amount": "10000.00",
                          "currency": "CAD"
                        },
                        "maximum_amount": {
                          "amount": "100000.00",
                          "currency": "CAD"
                        },
                        "minimum_term_months": 6,
                        "maximum_term_months": 24,
                        "repayment_frequency": "monthly",
                        "pricing_schema_id": "pricing_synthetic",
                        "pricing": {
                          "rate_type": "fixed",
                          "annual_interest_rate": "0.12",
                          "amortization_months": 12,
                          "fees": []
                        },
                        "terms_document_ids": []
                      },
                      "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "List lending product version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/lending-product-versions\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/lending-product-versions', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/lending-product-versions\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/lending-product-versions/{id}": {
      "get": {
        "operationId": "getLendingProductVersion",
        "summary": "Get lending product version",
        "tags": [
          "Configuration"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "configuration:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/LendingProductVersion"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "lpv_synthetic",
                    "created_at": "2026-11-06T12:00:00Z",
                    "definition": {
                      "external_id": "working-capital",
                      "version": "1",
                      "name": "Working capital loan",
                      "borrower_type": "business",
                      "market": "CA",
                      "currency": "CAD",
                      "product_type": "term_loan",
                      "minimum_amount": {
                        "amount": "10000.00",
                        "currency": "CAD"
                      },
                      "maximum_amount": {
                        "amount": "100000.00",
                        "currency": "CAD"
                      },
                      "minimum_term_months": 6,
                      "maximum_term_months": 24,
                      "repayment_frequency": "monthly",
                      "pricing_schema_id": "pricing_synthetic",
                      "pricing": {
                        "rate_type": "fixed",
                        "annual_interest_rate": "0.12",
                        "amortization_months": 12,
                        "fees": []
                      },
                      "terms_document_ids": []
                    },
                    "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get lending product version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/lending-product-versions/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/lending-product-versions/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/lending-product-versions/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/risk-policy-versions": {
      "post": {
        "operationId": "createRiskPolicyVersion",
        "summary": "Create risk policy version",
        "tags": [
          "Configuration"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "configuration:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/RiskPolicyVersion"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "rpv_synthetic",
                    "created_at": "2026-11-06T12:00:00Z",
                    "definition": {
                      "external_id": "working-capital-policy",
                      "version": "1",
                      "name": "Illustrative policy, not a recommended threshold",
                      "borrower_type": "business",
                      "market": "CA",
                      "rules": [
                        {
                          "id": "dscr-minimum",
                          "dimension_key": "dscr",
                          "operator": "gte",
                          "threshold": "1.25",
                          "unit": "ratio",
                          "on_missing": "review",
                          "on_fail": "review",
                          "calculation_version": "amlok-dscr-1"
                        }
                      ],
                      "policy_document_ids": []
                    },
                    "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Store an immutable policy version. AMLOK validates typed rules and units; attached policy documents provide context and do not become executable rules automatically. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RiskPolicyInput"
              },
              "example": {
                "external_id": "working-capital-policy",
                "version": "1",
                "name": "Illustrative policy, not a recommended threshold",
                "borrower_type": "business",
                "market": "CA",
                "rules": [
                  {
                    "id": "dscr-minimum",
                    "dimension_key": "dscr",
                    "operator": "gte",
                    "threshold": "1.25",
                    "unit": "ratio",
                    "on_missing": "review",
                    "on_fail": "review",
                    "calculation_version": "amlok-dscr-1"
                  }
                ],
                "policy_document_ids": []
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/risk-policy-versions\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: createRiskPolicyVersion-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"external_id\":\"working-capital-policy\",\"version\":\"1\",\"name\":\"Illustrative policy, not a recommended threshold\",\"borrower_type\":\"business\",\"market\":\"CA\",\"rules\":[{\"id\":\"dscr-minimum\",\"dimension_key\":\"dscr\",\"operator\":\"gte\",\"threshold\":\"1.25\",\"unit\":\"ratio\",\"on_missing\":\"review\",\"on_fail\":\"review\",\"calculation_version\":\"amlok-dscr-1\"}],\"policy_document_ids\":[]}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'createRiskPolicyVersion-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/risk-policy-versions', headers=headers, json={'external_id': 'working-capital-policy', 'version': '1', 'name': 'Illustrative policy, not a recommended threshold', 'borrower_type': 'business', 'market': 'CA', 'rules': [{'id': 'dscr-minimum', 'dimension_key': 'dscr', 'operator': 'gte', 'threshold': '1.25', 'unit': 'ratio', 'on_missing': 'review', 'on_fail': 'review', 'calculation_version': 'amlok-dscr-1'}], 'policy_document_ids': []}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"createRiskPolicyVersion-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/risk-policy-versions\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"external_id\": \"working-capital-policy\", \"version\": \"1\", \"name\": \"Illustrative policy, not a recommended threshold\", \"borrower_type\": \"business\", \"market\": \"CA\", \"rules\": [{\"id\": \"dscr-minimum\", \"dimension_key\": \"dscr\", \"operator\": \"gte\", \"threshold\": \"1.25\", \"unit\": \"ratio\", \"on_missing\": \"review\", \"on_fail\": \"review\", \"calculation_version\": \"amlok-dscr-1\"}], \"policy_document_ids\": []})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      },
      "get": {
        "operationId": "listRiskPolicyVersion",
        "summary": "List risk policy versions",
        "tags": [
          "Configuration"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "configuration:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "external_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "external id"
          },
          {
            "name": "version",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "version"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/RiskPolicyVersion"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "rpv_synthetic",
                      "created_at": "2026-11-06T12:00:00Z",
                      "definition": {
                        "external_id": "working-capital-policy",
                        "version": "1",
                        "name": "Illustrative policy, not a recommended threshold",
                        "borrower_type": "business",
                        "market": "CA",
                        "rules": [
                          {
                            "id": "dscr-minimum",
                            "dimension_key": "dscr",
                            "operator": "gte",
                            "threshold": "1.25",
                            "unit": "ratio",
                            "on_missing": "review",
                            "on_fail": "review",
                            "calculation_version": "amlok-dscr-1"
                          }
                        ],
                        "policy_document_ids": []
                      },
                      "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "List risk policy version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/risk-policy-versions\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/risk-policy-versions', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/risk-policy-versions\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/risk-policy-versions/{id}": {
      "get": {
        "operationId": "getRiskPolicyVersion",
        "summary": "Get risk policy version",
        "tags": [
          "Configuration"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "configuration:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/RiskPolicyVersion"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "rpv_synthetic",
                    "created_at": "2026-11-06T12:00:00Z",
                    "definition": {
                      "external_id": "working-capital-policy",
                      "version": "1",
                      "name": "Illustrative policy, not a recommended threshold",
                      "borrower_type": "business",
                      "market": "CA",
                      "rules": [
                        {
                          "id": "dscr-minimum",
                          "dimension_key": "dscr",
                          "operator": "gte",
                          "threshold": "1.25",
                          "unit": "ratio",
                          "on_missing": "review",
                          "on_fail": "review",
                          "calculation_version": "amlok-dscr-1"
                        }
                      ],
                      "policy_document_ids": []
                    },
                    "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get risk policy version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/risk-policy-versions/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/risk-policy-versions/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/risk-policy-versions/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/originations": {
      "post": {
        "operationId": "createOrigination",
        "summary": "Create origination",
        "tags": [
          "Insights"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "insights:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted asynchronously; inspect status, not just HTTP success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Origination"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "orgn_synthetic",
                    "borrower_id": "bor_synthetic",
                    "institution_reference": "LOS-2026-0042",
                    "status": "accepted",
                    "created_at": "2026-11-06T12:00:00Z",
                    "updated_at": "2026-11-06T12:00:00Z",
                    "requirements": [],
                    "risk_package_id": null,
                    "failure": null,
                    "record_version": 1,
                    "submitted_request": {
                      "borrower_id": "bor_synthetic",
                      "application": {
                        "institution_reference": "LOS-2026-0042",
                        "requested_amount": {
                          "amount": "50000.00",
                          "currency": "CAD"
                        },
                        "requested_term_months": 12,
                        "purpose": "Working capital",
                        "application_schema_id": "app_schema_synthetic",
                        "declared_data": {
                          "annual_revenue": "600000.00"
                        }
                      },
                      "lending_product_version_id": "lpv_synthetic",
                      "risk_policy_version_id": "rpv_synthetic",
                      "connection_ids": [
                        "con_synthetic"
                      ],
                      "document_ids": []
                    },
                    "document_ids": [],
                    "connection_ids": [
                      "con_synthetic"
                    ]
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Submit the borrower application with exact product and policy versions, connections and documents. AMLOK collects and normalizes data, runs included checks and publishes the risk package. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrigination"
              },
              "example": {
                "borrower_id": "bor_synthetic",
                "application": {
                  "institution_reference": "LOS-2026-0042",
                  "requested_amount": {
                    "amount": "50000.00",
                    "currency": "CAD"
                  },
                  "requested_term_months": 12,
                  "purpose": "Working capital",
                  "application_schema_id": "app_schema_synthetic",
                  "declared_data": {
                    "annual_revenue": "600000.00"
                  }
                },
                "lending_product_version_id": "lpv_synthetic",
                "risk_policy_version_id": "rpv_synthetic",
                "connection_ids": [
                  "con_synthetic"
                ],
                "document_ids": []
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/originations\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: createOrigination-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"borrower_id\":\"bor_synthetic\",\"application\":{\"institution_reference\":\"LOS-2026-0042\",\"requested_amount\":{\"amount\":\"50000.00\",\"currency\":\"CAD\"},\"requested_term_months\":12,\"purpose\":\"Working capital\",\"application_schema_id\":\"app_schema_synthetic\",\"declared_data\":{\"annual_revenue\":\"600000.00\"}},\"lending_product_version_id\":\"lpv_synthetic\",\"risk_policy_version_id\":\"rpv_synthetic\",\"connection_ids\":[\"con_synthetic\"],\"document_ids\":[]}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'createOrigination-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/originations', headers=headers, json={'borrower_id': 'bor_synthetic', 'application': {'institution_reference': 'LOS-2026-0042', 'requested_amount': {'amount': '50000.00', 'currency': 'CAD'}, 'requested_term_months': 12, 'purpose': 'Working capital', 'application_schema_id': 'app_schema_synthetic', 'declared_data': {'annual_revenue': '600000.00'}}, 'lending_product_version_id': 'lpv_synthetic', 'risk_policy_version_id': 'rpv_synthetic', 'connection_ids': ['con_synthetic'], 'document_ids': []}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"createOrigination-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/originations\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"borrower_id\": \"bor_synthetic\", \"application\": {\"institution_reference\": \"LOS-2026-0042\", \"requested_amount\": {\"amount\": \"50000.00\", \"currency\": \"CAD\"}, \"requested_term_months\": 12, \"purpose\": \"Working capital\", \"application_schema_id\": \"app_schema_synthetic\", \"declared_data\": {\"annual_revenue\": \"600000.00\"}}, \"lending_product_version_id\": \"lpv_synthetic\", \"risk_policy_version_id\": \"rpv_synthetic\", \"connection_ids\": [\"con_synthetic\"], \"document_ids\": []})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      },
      "get": {
        "operationId": "listOrigination",
        "summary": "List originations",
        "tags": [
          "Insights"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "insights:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          },
          {
            "name": "institution_reference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "institution reference"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "status"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Origination"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "orgn_synthetic",
                      "borrower_id": "bor_synthetic",
                      "institution_reference": "LOS-2026-0042",
                      "status": "completed",
                      "created_at": "2026-11-06T12:00:00Z",
                      "updated_at": "2026-11-06T12:00:00Z",
                      "requirements": [],
                      "risk_package_id": "rp_synthetic",
                      "failure": null,
                      "record_version": 1,
                      "submitted_request": {
                        "borrower_id": "bor_synthetic",
                        "application": {
                          "institution_reference": "LOS-2026-0042",
                          "requested_amount": {
                            "amount": "50000.00",
                            "currency": "CAD"
                          },
                          "requested_term_months": 12,
                          "purpose": "Working capital",
                          "application_schema_id": "app_schema_synthetic",
                          "declared_data": {
                            "annual_revenue": "600000.00"
                          }
                        },
                        "lending_product_version_id": "lpv_synthetic",
                        "risk_policy_version_id": "rpv_synthetic",
                        "connection_ids": [
                          "con_synthetic"
                        ],
                        "document_ids": []
                      },
                      "document_ids": [],
                      "connection_ids": [
                        "con_synthetic"
                      ]
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "List origination. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/originations\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/originations', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/originations\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/originations/{id}": {
      "get": {
        "operationId": "getOrigination",
        "summary": "Get origination",
        "tags": [
          "Insights"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "insights:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Origination"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "orgn_synthetic",
                    "borrower_id": "bor_synthetic",
                    "institution_reference": "LOS-2026-0042",
                    "status": "completed",
                    "created_at": "2026-11-06T12:00:00Z",
                    "updated_at": "2026-11-06T12:00:00Z",
                    "requirements": [],
                    "risk_package_id": "rp_synthetic",
                    "failure": null,
                    "record_version": 1,
                    "submitted_request": {
                      "borrower_id": "bor_synthetic",
                      "application": {
                        "institution_reference": "LOS-2026-0042",
                        "requested_amount": {
                          "amount": "50000.00",
                          "currency": "CAD"
                        },
                        "requested_term_months": 12,
                        "purpose": "Working capital",
                        "application_schema_id": "app_schema_synthetic",
                        "declared_data": {
                          "annual_revenue": "600000.00"
                        }
                      },
                      "lending_product_version_id": "lpv_synthetic",
                      "risk_policy_version_id": "rpv_synthetic",
                      "connection_ids": [
                        "con_synthetic"
                      ],
                      "document_ids": []
                    },
                    "document_ids": [],
                    "connection_ids": [
                      "con_synthetic"
                    ]
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Retrieve an underwriting request, its immutable submitted application, product and policy versions, document associations, requirements, status and risk-package reference, including before processing completes. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/originations/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/originations/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/originations/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/risk-packages/{id}": {
      "get": {
        "operationId": "getRiskPackage",
        "summary": "Get risk package",
        "tags": [
          "Results"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "results:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/RiskPackage"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "rp_synthetic",
                    "borrower_id": "bor_synthetic",
                    "origination_id": "orgn_synthetic",
                    "monitoring_run_id": null,
                    "product": "insights",
                    "created_at": "2026-11-06T12:00:00Z",
                    "as_of": "2026-11-06T12:00:00Z",
                    "previous_package_id": null,
                    "application": {
                      "institution_reference": "LOS-2026-0042",
                      "requested_amount": {
                        "amount": "50000.00",
                        "currency": "CAD"
                      },
                      "requested_term_months": 12,
                      "purpose": "Working capital",
                      "application_schema_id": "app_schema_synthetic",
                      "declared_data": {
                        "annual_revenue": "600000.00"
                      }
                    },
                    "lending_product": {
                      "id": "lpv_synthetic",
                      "created_at": "2026-11-06T12:00:00Z",
                      "definition": {
                        "external_id": "working-capital",
                        "version": "1",
                        "name": "Working capital loan",
                        "borrower_type": "business",
                        "market": "CA",
                        "currency": "CAD",
                        "product_type": "term_loan",
                        "minimum_amount": {
                          "amount": "10000.00",
                          "currency": "CAD"
                        },
                        "maximum_amount": {
                          "amount": "100000.00",
                          "currency": "CAD"
                        },
                        "minimum_term_months": 6,
                        "maximum_term_months": 24,
                        "repayment_frequency": "monthly",
                        "pricing_schema_id": "pricing_synthetic",
                        "pricing": {
                          "rate_type": "fixed",
                          "annual_interest_rate": "0.12",
                          "amortization_months": 12,
                          "fees": []
                        },
                        "terms_document_ids": []
                      },
                      "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
                    },
                    "risk_policy": {
                      "id": "rpv_synthetic",
                      "created_at": "2026-11-06T12:00:00Z",
                      "definition": {
                        "external_id": "working-capital-policy",
                        "version": "1",
                        "name": "Illustrative policy, not a recommended threshold",
                        "borrower_type": "business",
                        "market": "CA",
                        "rules": [
                          {
                            "id": "dscr-minimum",
                            "dimension_key": "dscr",
                            "operator": "gte",
                            "threshold": "1.25",
                            "unit": "ratio",
                            "on_missing": "review",
                            "on_fail": "review",
                            "calculation_version": "amlok-dscr-1"
                          }
                        ],
                        "policy_document_ids": []
                      },
                      "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
                    },
                    "assessment": {
                      "recommendation": "review_required",
                      "is_institution_decision": false,
                      "summary": "Repayment capacity requires review because the debt schedule is incomplete.",
                      "reasons": [
                        "Required repayment evidence is missing."
                      ]
                    },
                    "dimensions": [
                      {
                        "key": "identity",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "business_age_months",
                            "label": "Business age",
                            "status": "unavailable",
                            "value": null,
                            "unit": "months",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-business_age_months-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "verified_account_owner_ratio",
                            "label": "Verified account ownership share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-verified_account_owner_ratio-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "ownership_and_control",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "ownership_disclosed_ratio",
                            "label": "Disclosed ownership share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-ownership_disclosed_ratio-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "related_party_balance_share",
                            "label": "Related-party receivables share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-related_party_balance_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "supported_guarantee_coverage",
                            "label": "Supported guarantee coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-supported_guarantee_coverage-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "cashflow",
                        "status": "partial",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "total_inflows",
                            "label": "Posted inflows",
                            "status": "available",
                            "value": "1250.00",
                            "unit": "currency",
                            "window": {
                              "start": "2026-10-31T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-total_inflows-1",
                            "missing_reason": null,
                            "evidence_ids": [
                              "ev_bank_synthetic"
                            ],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": null,
                            "inputs": [
                              {
                                "name": "posted_inflow",
                                "value": "1250.00",
                                "unit": "currency",
                                "currency": "CAD",
                                "basis": "observed",
                                "evidence": [
                                  {
                                    "evidence_id": "ev_bank_synthetic",
                                    "field_path": "/amount/amount",
                                    "document_id": null,
                                    "page": null,
                                    "quote": null
                                  }
                                ]
                              }
                            ],
                            "coverage": {
                              "observed_days": 1,
                              "expected_days": 1,
                              "scope_note": "Complete for the explicitly illustrated source scope and period only."
                            },
                            "series": [
                              {
                                "window": {
                                  "start": "2026-10-31T00:00:00Z",
                                  "end": "2026-11-01T00:00:00Z"
                                },
                                "status": "available",
                                "value": "1250.00",
                                "reason": null,
                                "evidence_ids": [
                                  "ev_bank_synthetic"
                                ]
                              }
                            ]
                          },
                          {
                            "key": "total_outflows",
                            "label": "Posted outflows",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-total_outflows-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "net_cash_flow",
                            "label": "Net cash flow",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-net_cash_flow-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "operating_cash_inflows",
                            "label": "Operating receipts",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-operating_cash_inflows-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "operating_cash_outflows",
                            "label": "Operating cash payments",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-operating_cash_outflows-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "operating_net_cash_flow",
                            "label": "Net operating cash flow",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-operating_net_cash_flow-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "internal_transfer_inflows",
                            "label": "Internal transfer inflows",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-internal_transfer_inflows-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "financing_inflows",
                            "label": "Financing inflows",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-financing_inflows-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "positive_cashflow_month_share",
                            "label": "Positive cash-flow months",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-positive_cashflow_month_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "cashflow_volatility",
                            "label": "Operating cash-flow volatility",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-cashflow_volatility-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "cashflow_change_90d",
                            "label": "Operating cash-flow change",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-cashflow_change_90d-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": [
                          "ev_bank_synthetic"
                        ]
                      },
                      {
                        "key": "liquidity",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "unrestricted_cash",
                            "label": "Unrestricted cash",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-unrestricted_cash-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "average_daily_balance",
                            "label": "Average daily cash balance",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-average_daily_balance-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "minimum_daily_balance",
                            "label": "Minimum daily cash balance",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-minimum_daily_balance-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "negative_balance_days",
                            "label": "Days below zero",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-negative_balance_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "cash_buffer_days",
                            "label": "Cash buffer",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-cash_buffer_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "current_ratio",
                            "label": "Current ratio",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-current_ratio-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "quick_ratio",
                            "label": "Quick ratio",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-quick_ratio-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "cash_ratio",
                            "label": "Cash ratio",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-cash_ratio-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "revenue_quality",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "verified_revenue",
                            "label": "Verified revenue",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-verified_revenue-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "recurring_revenue_share",
                            "label": "Recurring revenue share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-recurring_revenue_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "revenue_growth_yoy",
                            "label": "Revenue growth year over year",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-revenue_growth_yoy-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "revenue_growth_90d",
                            "label": "Revenue growth over 90 days",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-revenue_growth_90d-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "revenue_volatility",
                            "label": "Monthly revenue volatility",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-revenue_volatility-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "refund_amount_share",
                            "label": "Refund amount share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-refund_amount_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "chargeback_amount_share",
                            "label": "Chargeback amount share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-chargeback_amount_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "revenue_cash_realization",
                            "label": "Revenue cash realization",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-revenue_cash_realization-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "unverified_receipts_share",
                            "label": "Unverified receipts share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-unverified_receipts_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "nonrecurring_revenue_share",
                            "label": "Nonrecurring revenue share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-nonrecurring_revenue_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "profitability",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "gross_profit",
                            "label": "Gross profit",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-gross_profit-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "gross_margin",
                            "label": "Gross margin",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-gross_margin-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "ebitda",
                            "label": "EBITDA",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-ebitda-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "ebitda_margin",
                            "label": "EBITDA margin",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-ebitda_margin-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "operating_profit",
                            "label": "Operating profit",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-operating_profit-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "operating_margin",
                            "label": "Operating margin",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-operating_margin-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "net_profit",
                            "label": "Net profit",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-net_profit-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "net_margin",
                            "label": "Net margin",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-net_margin-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "free_cash_flow",
                            "label": "Free cash flow",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-free_cash_flow-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "return_on_assets",
                            "label": "Return on assets",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-return_on_assets-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "working_capital",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "net_working_capital",
                            "label": "Net working capital",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-net_working_capital-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "receivables_days",
                            "label": "Receivable days",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-receivables_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "payables_days",
                            "label": "Payable days",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-payables_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "inventory_days",
                            "label": "Inventory days",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-inventory_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "cash_conversion_cycle",
                            "label": "Cash conversion cycle",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-cash_conversion_cycle-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "ar_overdue_share",
                            "label": "Overdue receivables share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-ar_overdue_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "ar_90_plus_share",
                            "label": "Receivables over 90 days past due",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-ar_90_plus_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "ap_overdue_share",
                            "label": "Overdue payables share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-ap_overdue_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "inventory_turnover",
                            "label": "Inventory turnover",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-inventory_turnover-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "leverage",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "total_debt",
                            "label": "Total interest-bearing debt",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-total_debt-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "net_debt",
                            "label": "Net debt",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-net_debt-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "debt_to_assets",
                            "label": "Debt to assets",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-debt_to_assets-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "debt_to_equity",
                            "label": "Debt to equity",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-debt_to_equity-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "net_debt_to_ebitda",
                            "label": "Net debt to EBITDA",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-net_debt_to_ebitda-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "credit_utilization",
                            "label": "Revolving credit utilization",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-credit_utilization-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "short_term_debt_share",
                            "label": "Debt due within one year",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-short_term_debt_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "debt_maturing_90d",
                            "label": "Debt maturing within 90 days",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-debt_maturing_90d-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "repayment_capacity",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "dscr",
                            "label": "Cash-flow debt-service coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-dscr-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "fixed_charge_coverage",
                            "label": "Fixed-charge coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-fixed_charge_coverage-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "interest_coverage",
                            "label": "Interest coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-interest_coverage-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "existing_debt_service",
                            "label": "Existing debt service",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-existing_debt_service-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "proposed_debt_service",
                            "label": "Proposed debt service",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-proposed_debt_service-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "total_debt_service",
                            "label": "Total debt service",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-total_debt_service-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "residual_cash_after_debt",
                            "label": "Cash after debt service",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-residual_cash_after_debt-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "debt_service_headroom",
                            "label": "Debt-service headroom",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-debt_service_headroom-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "debt_payment_to_receipts",
                            "label": "Debt payments to operating receipts",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-debt_payment_to_receipts-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "concentration",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "top_customer_share",
                            "label": "Largest customer share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-top_customer_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "top_five_customer_share",
                            "label": "Top five customer share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-top_five_customer_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "top_supplier_share",
                            "label": "Largest supplier share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-top_supplier_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "top_channel_share",
                            "label": "Largest sales channel share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-top_channel_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "customer_hhi",
                            "label": "Customer concentration index",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-customer_hhi-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "income_source_hhi",
                            "label": "Income-source concentration index",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-income_source_hhi-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "collateral",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "collateral_ltv",
                            "label": "Loan to collateral value",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-collateral_ltv-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "combined_ltv",
                            "label": "Combined loan to value",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-combined_ltv-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "collateral_coverage",
                            "label": "Collateral coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-collateral_coverage-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "eligible_receivables",
                            "label": "Eligible borrowing-base receivables",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-eligible_receivables-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "collateral_haircut_ratio",
                            "label": "Collateral haircut",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-collateral_haircut_ratio-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "fraud_and_consistency",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "reconciliation_break_share",
                            "label": "Unreconciled value share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-reconciliation_break_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "duplicate_transaction_share",
                            "label": "Duplicate transaction share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-duplicate_transaction_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "document_contradiction_count",
                            "label": "Document contradictions",
                            "status": "unavailable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-document_contradiction_count-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "identity_mismatch_count",
                            "label": "Unresolved identity mismatches",
                            "status": "unavailable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-identity_mismatch_count-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "declared_income_gap_ratio",
                            "label": "Declared-to-verified income gap",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-declared_income_gap_ratio-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "income_and_affordability",
                        "status": "not_applicable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "verified_gross_monthly_income",
                            "label": "Verified gross monthly income",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-verified_gross_monthly_income-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "verified_net_monthly_income",
                            "label": "Verified net monthly income",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-verified_net_monthly_income-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "debt_to_income",
                            "label": "Debt to income",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-debt_to_income-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "housing_to_income",
                            "label": "Housing cost to income",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-housing_to_income-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "essential_monthly_spend",
                            "label": "Essential monthly expenditure",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-essential_monthly_spend-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "residual_monthly_income",
                            "label": "Residual monthly income",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-residual_monthly_income-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "payment_to_income",
                            "label": "Proposed payment to income",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-payment_to_income-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "liquid_reserve_months",
                            "label": "Liquid reserve months",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "months",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-liquid_reserve_months-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "income_stability",
                        "status": "not_applicable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "income_source_count",
                            "label": "Verified income sources",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-income_source_count-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "income_volatility",
                            "label": "Monthly income volatility",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-income_volatility-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "income_growth_yoy",
                            "label": "Income growth year over year",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-income_growth_yoy-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "days_since_last_income",
                            "label": "Days since last income",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-days_since_last_income-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "income_interruption_days",
                            "label": "Income interruption",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-income_interruption_days-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "income_continuity_share",
                            "label": "Income continuity",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-income_continuity_share-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "payment_behavior",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "nsf_event_count",
                            "label": "Insufficient-funds events",
                            "status": "unavailable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-nsf_event_count-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "overdraft_days",
                            "label": "Overdraft days",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-overdraft_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "returned_payment_amount",
                            "label": "Returned payment amount",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-returned_payment_amount-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "delinquent_obligation_count",
                            "label": "Delinquent obligations",
                            "status": "unavailable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-delinquent_obligation_count-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "maximum_days_past_due",
                            "label": "Maximum days past due",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-maximum_days_past_due-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "on_time_payment_share",
                            "label": "On-time payment share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-on_time_payment_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "credit_history",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "open_credit_obligation_count",
                            "label": "Open credit obligations",
                            "status": "unavailable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-open_credit_obligation_count-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "bureau_utilization",
                            "label": "Reported revolving utilization",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-bureau_utilization-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "recent_credit_inquiry_count",
                            "label": "Recent credit inquiries",
                            "status": "unavailable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-recent_credit_inquiry_count-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "severe_delinquency_count",
                            "label": "Severe delinquency events",
                            "status": "unavailable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-severe_delinquency_count-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "public_record_event_count",
                            "label": "Relevant public-record events",
                            "status": "unavailable",
                            "value": null,
                            "unit": "count",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-public_record_event_count-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "commerce_performance",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "gross_sales",
                            "label": "Gross sales",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-gross_sales-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "net_sales",
                            "label": "Net sales",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-net_sales-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "average_order_value",
                            "label": "Average order value",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-average_order_value-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "repeat_customer_share",
                            "label": "Repeat customer share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-repeat_customer_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "monthly_recurring_revenue",
                            "label": "Monthly recurring revenue",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-monthly_recurring_revenue-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "gross_revenue_retention",
                            "label": "Gross revenue retention",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-gross_revenue_retention-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "net_revenue_retention",
                            "label": "Net revenue retention",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-net_revenue_retention-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "settlement_delay_days",
                            "label": "Settlement delay",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-settlement_delay_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "operating_resilience",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "payroll_burden_share",
                            "label": "Payroll burden",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-payroll_burden_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "payroll_growth_yoy",
                            "label": "Payroll growth year over year",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-payroll_growth_yoy-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "inventory_stockout_share",
                            "label": "Inventory stockout share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-inventory_stockout_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "fulfillment_on_time_share",
                            "label": "On-time fulfillment share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-fulfillment_on_time_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "supplier_payment_delay_days",
                            "label": "Supplier payment delay",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-supplier_payment_delay_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "tax_and_compliance",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "tax_liability",
                            "label": "Reported tax liability",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-tax_liability-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "tax_overdue_amount",
                            "label": "Overdue tax amount",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-tax_overdue_amount-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "tax_payment_coverage",
                            "label": "Tax payment coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-tax_payment_coverage-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "filing_coverage",
                            "label": "Filing evidence coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-filing_coverage-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "financial_reporting_quality",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "bank_accounting_match_share",
                            "label": "Bank-to-books match share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-bank_accounting_match_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "statement_balance_discrepancy",
                            "label": "Balance-sheet discrepancy",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-statement_balance_discrepancy-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "material_adjustment_share",
                            "label": "Material accounting adjustments",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-material_adjustment_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "books_closing_lag_days",
                            "label": "Books closing lag",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-books_closing_lag_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "data_quality",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "observed_account_coverage",
                            "label": "Declared-account coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-observed_account_coverage-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "covered_history_days",
                            "label": "Covered history",
                            "status": "unavailable",
                            "value": null,
                            "unit": "days",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-covered_history_days-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "stale_source_share",
                            "label": "Stale required sources",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-stale_source_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "unclassified_transaction_share",
                            "label": "Unclassified transactions",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-unclassified_transaction_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "reconciled_value_share",
                            "label": "Reconciled financial value",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-reconciled_value_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "forecasting_and_stress",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "projected_minimum_cash",
                            "label": "Projected minimum cash",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-projected_minimum_cash-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "stress_dscr",
                            "label": "Stressed debt-service coverage",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-stress_dscr-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "stress_residual_income",
                            "label": "Stressed residual income",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-stress_residual_income-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "liquidity_shortfall",
                            "label": "Projected liquidity shortfall",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-liquidity_shortfall-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "break_even_revenue_decline",
                            "label": "Break-even revenue decline",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-break_even_revenue_decline-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "relationship_risk",
                        "status": "unavailable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "related_party_receipts_share",
                            "label": "Related-party receipts share",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-related_party_receipts_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "circular_flow_amount",
                            "label": "Potential circular-flow amount",
                            "status": "unavailable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-circular_flow_amount-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "connected_counterparty_share",
                            "label": "Connected-counterparty exposure",
                            "status": "unavailable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-connected_counterparty_share-1",
                            "missing_reason": "Required, comparable source inputs are not included in this synthetic example.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "missing_source",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      },
                      {
                        "key": "monitoring_change",
                        "status": "not_applicable",
                        "summary": "See individual metric availability and reasons.",
                        "metrics": [
                          {
                            "key": "revenue_change_from_baseline",
                            "label": "Revenue change from baseline",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-revenue_change_from_baseline-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "liquidity_change_from_baseline",
                            "label": "Liquidity change from baseline",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "currency",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-liquidity_change_from_baseline-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": "CAD",
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "dscr_change_from_baseline",
                            "label": "DSCR change from baseline",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-dscr_change_from_baseline-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          },
                          {
                            "key": "obligation_growth_from_baseline",
                            "label": "Debt change from baseline",
                            "status": "not_applicable",
                            "value": null,
                            "unit": "ratio",
                            "window": {
                              "start": "2025-11-01T00:00:00Z",
                              "end": "2026-11-01T00:00:00Z"
                            },
                            "calculation_version": "amlok-obligation_growth_from_baseline-1",
                            "missing_reason": "This metric does not apply to this borrower or an initial Insights assessment.",
                            "evidence_ids": [],
                            "analysis_basis": "historical",
                            "assumptions": [],
                            "definition_version": "2026-11-06.1",
                            "currency": null,
                            "as_of": "2026-11-06T12:00:00Z",
                            "basis": "derived",
                            "reason_code": "not_applicable",
                            "inputs": [],
                            "coverage": {
                              "observed_days": 0,
                              "expected_days": 365,
                              "scope_note": "Synthetic example; observed sources do not establish all external accounts."
                            },
                            "series": []
                          }
                        ],
                        "evidence_ids": []
                      }
                    ],
                    "policy_results": [
                      {
                        "rule_id": "dscr-minimum",
                        "result": "unavailable",
                        "actual": null,
                        "threshold": "1.25",
                        "unit": "ratio",
                        "explanation": "The rule cannot be evaluated without a supported DSCR.",
                        "evidence_ids": [
                          "ev_bank_synthetic"
                        ],
                        "metric_key": "dscr",
                        "calculation_version": "amlok-dscr-1",
                        "metric_window": {
                          "start": "2025-11-01T00:00:00Z",
                          "end": "2026-11-01T00:00:00Z"
                        }
                      }
                    ],
                    "sources": [
                      {
                        "connection_id": "con_synthetic",
                        "integration_id": "bank_synthetic",
                        "source_as_of": "2026-11-01T00:00:00Z",
                        "retrieved_at": "2026-11-06T12:00:00Z",
                        "window": {
                          "start": "2025-11-01T00:00:00Z",
                          "end": "2026-11-01T00:00:00Z"
                        },
                        "status": "partial",
                        "limitations": [
                          "Bank records alone do not establish a complete debt schedule."
                        ]
                      }
                    ],
                    "limitations": [
                      "All values, IDs and hashes in this example are synthetic. The threshold is illustrative, not an industry recommendation.",
                      "The illustrated inflow is a one-day observed-source subtotal. It is not annual revenue. Authorized derived metrics can remain available while a licensed raw evidence record is restricted."
                    ],
                    "evidence_set": {
                      "id": "es_synthetic",
                      "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                      "count": 2
                    },
                    "versions": {
                      "schema": "1.0.0",
                      "normalization": "synthetic-v1",
                      "calculation": "synthetic-v1",
                      "model": null
                    },
                    "billing_usage_id": "usage_synthetic",
                    "document_ids": [
                      "doc_registry_synthetic"
                    ],
                    "record_version": 1,
                    "deal_snapshot_id": null,
                    "catalog_version": "2026-11-06.1",
                    "verification": {
                      "id": "verify_business_synthetic",
                      "borrower_id": "bor_synthetic",
                      "subject_id": "biz_synthetic",
                      "definition_version": "2026-11-06.1",
                      "as_of": "2026-11-06T12:00:00Z",
                      "status": "partial",
                      "outcome": "review_required",
                      "summary": "Synthetic business has a selected registry record. Required related-party checks and ownership resolution remain incomplete; an active registration is not a verified pass.",
                      "sources": [
                        {
                          "id": "src_verification_synthetic",
                          "kind": "business_verification",
                          "display_name": "Synthetic licensed registry source",
                          "jurisdictions": [
                            "CA-AB"
                          ],
                          "reference": "report_synthetic",
                          "reported_status": "not_verified",
                          "requested_at": "2026-11-06T12:00:00Z",
                          "completed_at": "2026-11-06T12:00:00Z",
                          "as_of": "2026-11-06T12:00:00Z",
                          "coverage": {
                            "status": "partial",
                            "requested_scopes": [
                              "business_registry",
                              "licence_registry",
                              "related_people"
                            ],
                            "completed_scopes": [],
                            "limitations": [
                              "This example does not establish complete coverage."
                            ]
                          },
                          "document_ids": [
                            "doc_registry_synthetic"
                          ],
                          "warnings": [
                            "Required people not supplied."
                          ],
                          "errors": []
                        }
                      ],
                      "ownership_resolution": {
                        "status": "partial",
                        "reason": "Corporate shareholder chain and remaining voting interests are unresolved.",
                        "unresolved_subject_ids": [
                          "owner_company_synthetic"
                        ],
                        "ownership_basis": "voting",
                        "known_share": "0.65",
                        "unknown_share": "0.35"
                      },
                      "documents": [
                        {
                          "document_id": "doc_registry_synthetic",
                          "kind": "registry_report",
                          "access": "available",
                          "reason": null,
                          "source_id": "src_verification_synthetic"
                        }
                      ],
                      "checks": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "check_registry_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": null,
                                  "page": null
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/original_provider_status",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/method",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/policy_version",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/expires_at",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/override",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "kind": "business_registration",
                            "state": "completed",
                            "outcome": "review_required",
                            "provider_status": "not_verified",
                            "original_provider_status": null,
                            "reason_codes": [],
                            "summary": "Registry found; required people have not been submitted.",
                            "method": null,
                            "required": true,
                            "policy_version": null,
                            "completed_at": "2026-11-06T12:00:00Z",
                            "expires_at": null,
                            "item_ids": [
                              "business_selected_synthetic",
                              "compare_people_synthetic"
                            ],
                            "override": null
                          }
                        ]
                      },
                      "businesses": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "business_selected_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 1
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/good_standing",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/website",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/email",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/phone",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/registered_capital",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/source_url",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "resolution": "selected",
                            "legal_name": "Synthetic Example Manufacturing Inc.",
                            "alternate_names": [],
                            "entity_type": "corporation",
                            "country": "CA",
                            "jurisdiction": "CA-AB",
                            "identifiers": [
                              {
                                "scheme": "corporation_number",
                                "value": "SYNTHETIC-CA-001",
                                "masked_value": null,
                                "country": "CA",
                                "jurisdiction": null,
                                "disclosure": "full",
                                "reason": null
                              }
                            ],
                            "incorporation_date": "2018-04-10",
                            "nature_of_business": "Synthetic manufacturing business",
                            "registry_status": "Active",
                            "good_standing": null,
                            "address_ids": [
                              "address_registered_synthetic",
                              "address_records_synthetic"
                            ],
                            "relationship_ids": [],
                            "industry_codes": [],
                            "website": null,
                            "email": null,
                            "phone": null,
                            "registered_capital": null,
                            "financial_highlights": [],
                            "match_score": {
                              "value": 100,
                              "scale_min": 0,
                              "scale_max": 100,
                              "direction": "higher_is_stronger_match",
                              "label": "Synthetic similarity only",
                              "method": "synthetic-method-1"
                            },
                            "source_url": null
                          }
                        ]
                      },
                      "persons": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "registrations": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "registration_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 4
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/registration_type",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/standing",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/registered_on",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/inactive_on",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/dissolved_on",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/registered_agent_relationship_id",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "authority": "Synthetic provincial registry",
                            "registration_number": "SYNTHETIC-CA-001",
                            "country": "CA",
                            "jurisdiction": "CA-AB",
                            "registration_type": null,
                            "registered_name": "Synthetic Example Manufacturing Inc.",
                            "status": "Active",
                            "standing": null,
                            "registered_on": null,
                            "inactive_on": null,
                            "dissolved_on": null,
                            "last_annual_return_year": 2024,
                            "last_annual_return_filed_on": "2025-03-01",
                            "annual_return_status": "overdue",
                            "outstanding_return_years": [
                              2025
                            ],
                            "registered_agent_relationship_id": null,
                            "document_ids": [
                              "doc_registry_synthetic"
                            ]
                          }
                        ]
                      },
                      "addresses": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "address_registered_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 1
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/raw",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/formatted",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/deliverable",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/classification",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/is_cmra",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/is_virtual",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/is_registered_agent",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/match_score",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "roles": [
                              "registered_office"
                            ],
                            "raw": null,
                            "street": "100 Synthetic Example Street",
                            "unit": "Suite 3",
                            "city": "Calgary",
                            "region": "AB",
                            "postal_code": "T2P 1J9",
                            "country": "CA",
                            "formatted": null,
                            "validation": "not_validated",
                            "deliverable": null,
                            "classification": null,
                            "is_cmra": null,
                            "is_virtual": null,
                            "is_registered_agent": null,
                            "match_score": null
                          },
                          {
                            "id": "address_records_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 1
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/raw",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/formatted",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/deliverable",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/classification",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/is_cmra",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/is_virtual",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/is_registered_agent",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/match_score",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "roles": [
                              "records_office"
                            ],
                            "raw": null,
                            "street": "100 Synthetic Example Street",
                            "unit": "Suite 3",
                            "city": "Calgary",
                            "region": "AB",
                            "postal_code": "T2P 1J9",
                            "country": "CA",
                            "formatted": null,
                            "validation": "not_validated",
                            "deliverable": null,
                            "classification": null,
                            "is_cmra": null,
                            "is_virtual": null,
                            "is_registered_agent": null,
                            "match_score": null
                          }
                        ]
                      },
                      "relationships": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "relationship_owner_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 3
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/position",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/appointed_on",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/ended_on",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/active",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/authority",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/skip_reason",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "related_subject_id": "owner_company_synthetic",
                            "related_entity_type": "business",
                            "name": "Synthetic Holding Company Inc.",
                            "roles": [
                              "shareholder"
                            ],
                            "role_labels": [
                              "Voting shareholder"
                            ],
                            "position": null,
                            "appointed_on": null,
                            "ended_on": null,
                            "active": null,
                            "authority": null,
                            "address_ids": [],
                            "registration_identifiers": [],
                            "verification_check_ids": [],
                            "verification_required": true,
                            "verification_state": "pending",
                            "skip_reason": null
                          },
                          {
                            "id": "relationship_agent_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 1
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/position",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/appointed_on",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/ended_on",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/active",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/authority",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/verification_required",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/skip_reason",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "related_subject_id": "agent_synthetic",
                            "related_entity_type": "person",
                            "name": "Synthetic Service Agent",
                            "roles": [
                              "agent_for_service"
                            ],
                            "role_labels": [
                              "Primary agent for service"
                            ],
                            "position": null,
                            "appointed_on": null,
                            "ended_on": null,
                            "active": null,
                            "authority": null,
                            "address_ids": [],
                            "registration_identifiers": [],
                            "verification_check_ids": [],
                            "verification_required": null,
                            "verification_state": "not_requested",
                            "skip_reason": null
                          }
                        ]
                      },
                      "ownership": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "ownership_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 3
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/economic_share",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/economic_share_min",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/economic_share_max",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/voting_share_min",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/voting_share_max",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/effective_share",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/share_class",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/share_count",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/nominal_value",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/total_value",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/basis_date",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "owner_subject_id": "owner_company_synthetic",
                            "owned_subject_id": "biz_synthetic",
                            "interest_type": "voting",
                            "economic_share": null,
                            "voting_share": "0.65",
                            "economic_share_min": null,
                            "economic_share_max": null,
                            "voting_share_min": null,
                            "voting_share_max": null,
                            "effective_share": null,
                            "share_class": null,
                            "share_count": null,
                            "nominal_value": null,
                            "total_value": null,
                            "nature_of_control": [],
                            "chain_subject_ids": [
                              "owner_company_synthetic",
                              "biz_synthetic"
                            ],
                            "chain_complete": false,
                            "unresolved_reason": "No source establishes the corporate owner ultimate beneficial owners.",
                            "reported_interest": "65% of Voting Shares",
                            "basis_date": null
                          }
                        ]
                      },
                      "identity_documents": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "biometrics": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "screenings": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "tax_checks": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "tax_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": null,
                                  "page": null
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/authority",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/provided_name",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/registered_name",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/registered_address_id",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/checked_at",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "identifier": {
                              "scheme": "BN",
                              "value": null,
                              "masked_value": "*****0001",
                              "country": "CA",
                              "jurisdiction": null,
                              "disclosure": "masked",
                              "reason": "Synthetic example masks the taxpayer identifier."
                            },
                            "authority": null,
                            "result": "unavailable",
                            "provided_name": null,
                            "registered_name": null,
                            "registered_address_id": null,
                            "checked_at": null,
                            "unavailable_reason": "Registry identifier reported; no tax-authority validation result supplied."
                          }
                        ]
                      },
                      "licences": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "licence_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": null,
                                  "page": null
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [],
                            "supplemental_facts": [],
                            "registry": "Synthetic municipal business licence registry",
                            "authority": "Synthetic municipality",
                            "country": "CA",
                            "jurisdiction": "CA-AB",
                            "identifier": "SYNTHETIC-LIC-1",
                            "legal_name": "Synthetic Example Manufacturing Inc.",
                            "licence_types": [
                              "Manufacturing"
                            ],
                            "status": "Renewal licensed",
                            "issued_on": "2018-04-10",
                            "expires_on": "2027-04-10",
                            "address_ids": [],
                            "conditions": [],
                            "classification_codes": [],
                            "match_score": {
                              "value": 100,
                              "scale_min": 0,
                              "scale_max": 100,
                              "direction": "higher_is_stronger_match",
                              "label": "Synthetic similarity only",
                              "method": "synthetic-method-1"
                            }
                          }
                        ]
                      },
                      "filings": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "filing_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 4
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/effective_on",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/reference",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "kind": "Annual return",
                            "filed_on": "2025-03-01",
                            "effective_on": null,
                            "period_year": 2024,
                            "status": "Filed",
                            "reference": null,
                            "document_ids": [
                              "doc_registry_synthetic"
                            ]
                          }
                        ]
                      },
                      "corporate_structure": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "structure_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": "doc_registry_synthetic",
                                  "page": 4
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [],
                            "supplemental_facts": [],
                            "share_classes": [
                              {
                                "name": "Synthetic Class A",
                                "description": "Common voting shares",
                                "authorized_quantity": null,
                                "unlimited": true,
                                "issued_quantity": null,
                                "voting_rights": "One vote per share",
                                "votes_per_share": "1",
                                "nominal_value": null,
                                "dividend_rights": "As declared, subject to senior rights.",
                                "liquidation_rights": null,
                                "redemption_terms": null,
                                "evidence": [
                                  {
                                    "evidence_id": "ev_verification_synthetic",
                                    "data_record_id": "dr_verification_source_synthetic",
                                    "source_path": null,
                                    "document_id": "doc_registry_synthetic",
                                    "page": 6
                                  }
                                ]
                              }
                            ],
                            "share_transfer_restrictions": [
                              "See the source articles schedule."
                            ],
                            "minimum_directors": 1,
                            "maximum_directors": 10,
                            "permitted_activities": [],
                            "prohibited_activities": [],
                            "other_provisions": [],
                            "document_ids": [
                              "doc_registry_synthetic"
                            ]
                          }
                        ]
                      },
                      "public_records": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "online_presence": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "contact_checks": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "device_checks": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "document_checks": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "bank_account_checks": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "questionnaires": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "signatures": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      },
                      "field_comparisons": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "compare_name_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": null,
                                  "page": null
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [],
                            "supplemental_facts": [],
                            "field": "business.legal_name",
                            "provided": "SYNTHETIC EXAMPLE MANUFACTURING INC.",
                            "observed": "Synthetic Example Manufacturing Inc.",
                            "normalized_provided": "SYNTHETIC EXAMPLE MANUFACTURING INC",
                            "normalized_observed": "SYNTHETIC EXAMPLE MANUFACTURING INC",
                            "result": "matched",
                            "score": {
                              "value": 100,
                              "scale_min": 0,
                              "scale_max": 100,
                              "direction": "higher_is_stronger_match",
                              "label": "Synthetic similarity only",
                              "method": "synthetic-method-1"
                            },
                            "threshold": 95,
                            "required": true,
                            "affects_outcome": true,
                            "normalization": "Case and terminal punctuation folded; source names retained."
                          },
                          {
                            "id": "compare_people_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": null,
                                  "page": null
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [
                              {
                                "path": "/provided",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/observed",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/normalized_provided",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/normalized_observed",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/score",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/threshold",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              },
                              {
                                "path": "/normalization",
                                "reason": "not_provided",
                                "description": "This synthetic source does not supply this field."
                              }
                            ],
                            "supplemental_facts": [],
                            "field": "business.related_people",
                            "provided": null,
                            "observed": null,
                            "normalized_provided": null,
                            "normalized_observed": null,
                            "result": "not_submitted",
                            "score": null,
                            "threshold": null,
                            "required": true,
                            "affects_outcome": true,
                            "normalization": null
                          }
                        ]
                      },
                      "source_scores": {
                        "status": "available",
                        "reason": null,
                        "explanation": "Synthetic observations; availability does not mean a passing result.",
                        "coverage": {
                          "status": "complete",
                          "requested_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "completed_scopes": [
                            "synthetic_requested_scope"
                          ],
                          "limitations": []
                        },
                        "items": [
                          {
                            "id": "score_synthetic",
                            "subject_id": "biz_synthetic",
                            "provenance": {
                              "basis": "registry",
                              "source_id": "src_verification_synthetic",
                              "observed_at": "2026-11-06T12:00:00Z",
                              "retrieved_at": "2026-11-06T12:00:00Z",
                              "evidence": [
                                {
                                  "evidence_id": "ev_verification_synthetic",
                                  "data_record_id": "dr_verification_source_synthetic",
                                  "source_path": null,
                                  "document_id": null,
                                  "page": null
                                }
                              ],
                              "field_evidence": []
                            },
                            "missing_fields": [],
                            "supplemental_facts": [],
                            "kind": "entity_match",
                            "score": {
                              "value": 100,
                              "scale_min": 0,
                              "scale_max": 100,
                              "direction": "higher_is_stronger_match",
                              "label": "Synthetic similarity only",
                              "method": "synthetic-method-1"
                            },
                            "reason_codes": [],
                            "limitations": [
                              "Similarity is not an AMLOK credit score or a verified beneficial-owner conclusion."
                            ]
                          }
                        ]
                      },
                      "duplicate_checks": {
                        "status": "unavailable",
                        "reason": "not_requested",
                        "explanation": "No result included in this synthetic example.",
                        "coverage": {
                          "status": "not_requested",
                          "requested_scopes": [],
                          "completed_scopes": [],
                          "limitations": [
                            "No completed check is claimed."
                          ]
                        },
                        "items": []
                      }
                    },
                    "scope": {
                      "borrower_type": "business",
                      "market": "CA",
                      "reporting_currency": "CAD",
                      "window": {
                        "start": "2025-11-01T00:00:00Z",
                        "end": "2026-11-01T00:00:00Z"
                      },
                      "account_ids": [
                        "acct_synthetic"
                      ],
                      "entity_ids": [
                        "bor_synthetic"
                      ],
                      "consolidation": "single_entity",
                      "accounting_basis": "mixed",
                      "coverage_basis": "observed_sources",
                      "excluded_sources": [],
                      "fx_rates": []
                    },
                    "analyses": {
                      "verifications": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "financial_statements": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "obligations": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "income_streams": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "reconciliations": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "concentrations": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "projections": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "benchmarks": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "model_outputs": {
                        "status": "unavailable",
                        "reason": "No eligible validated model output is included; no score or default probability is fabricated.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "changes": {
                        "status": "not_applicable",
                        "reason": "An initial Insights assessment has no comparable baseline.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "collateral": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "relationships": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "credit_reports": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      },
                      "tax_obligations": {
                        "status": "unavailable",
                        "reason": "Necessary supporting evidence is not included in this synthetic example.",
                        "evidence_ids": [],
                        "items": []
                      }
                    },
                    "findings": [],
                    "required_actions": [
                      {
                        "code": "provide_debt_schedule",
                        "description": "Supply complete existing and proposed debt-service evidence.",
                        "metric_keys": [
                          "dscr"
                        ],
                        "requirement_ids": []
                      }
                    ],
                    "completeness": {
                      "expected_metric_count": 149,
                      "available_metric_count": 1,
                      "unavailable_metric_count": 128,
                      "not_applicable_metric_count": 20,
                      "coverage_statement": "All catalog entries are accounted for. Availability describes supplied evidence, not borrower credit quality."
                    }
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Retrieve an immutable Insights or Signal result with financial dimensions, policy evaluations, limitations and the frozen supporting evidence set. Recommendations do not replace the institution decision. All IDs and cursors must belong to the authorized workspace and environment. Required scope: results:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/risk-packages/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/risk-packages/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/risk-packages/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/evidence": {
      "get": {
        "operationId": "listEvidence",
        "summary": "List evidence",
        "tags": [
          "Evidence"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "evidence:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          },
          {
            "name": "evidence_set_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "evidence set id"
          },
          {
            "name": "resource_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "resource type"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EvidenceSummary"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "ev_bank_synthetic",
                      "evidence_set_id": "es_synthetic",
                      "resource_type": "bank_transaction",
                      "resource_id": "txn_synthetic",
                      "record_version": 1,
                      "kind": "normalized_record",
                      "source_id": "bank_synthetic",
                      "observed_at": "2026-11-06T12:00:00Z",
                      "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                      "access": "restricted",
                      "access_reason": "Illustrative source entitlement restriction.",
                      "document_id": null,
                      "data_record_id": "dr_synthetic_v1"
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "List frozen records and files belonging to an evidence set. Use resource_type to narrow the normalized resource family. Entitlement restrictions remain visible as metadata. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/evidence?evidence_set_id=es_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/evidence?evidence_set_id=es_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/evidence?evidence_set_id=es_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/evidence/{id}": {
      "get": {
        "operationId": "getEvidence",
        "summary": "Get evidence",
        "tags": [
          "Evidence"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "evidence:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Evidence"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "record": {
                      "id": "ev_bank_synthetic",
                      "evidence_set_id": "es_synthetic",
                      "resource_type": "bank_transaction",
                      "resource_id": "txn_synthetic",
                      "record_version": 1,
                      "kind": "normalized_record",
                      "source_id": "bank_synthetic",
                      "observed_at": "2026-11-06T12:00:00Z",
                      "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                      "access": "restricted",
                      "access_reason": "Illustrative source entitlement restriction.",
                      "document_id": null,
                      "data_record_id": "dr_synthetic_v1"
                    },
                    "normalized": null,
                    "provider_report_document_id": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read the exact normalized evidence version and its provenance, or the controlled document reference for a provider report. This never silently substitutes the latest source record. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/evidence/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/evidence/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/evidence/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/monitors": {
      "post": {
        "operationId": "createMonitor",
        "summary": "Create monitor",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted asynchronously; inspect status, not just HTTP success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Monitor"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "mon_synthetic",
                    "borrower_id": "bor_synthetic",
                    "deal": {
                      "institution_reference": "LOAN-0042",
                      "funded_amount": {
                        "amount": "50000.00",
                        "currency": "CAD"
                      },
                      "outstanding_amount": {
                        "amount": "50000.00",
                        "currency": "CAD"
                      },
                      "funded_at": "2026-11-05T12:00:00Z",
                      "maturity_date": "2027-11-06",
                      "repayment_frequency": "monthly",
                      "terms_document_ids": []
                    },
                    "status": "initializing",
                    "baseline_package_id": "rp_synthetic",
                    "latest_package_id": null,
                    "risk_policy_version_id": "rpv_synthetic",
                    "cadence_id": "cadence_synthetic",
                    "next_evaluation_at": null,
                    "record_version": 1,
                    "connection_ids": [
                      "con_synthetic"
                    ],
                    "requirements": [],
                    "failure": null,
                    "latest_deal_snapshot_id": "ds_initial",
                    "updated_at": "2026-11-06T12:00:00Z"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Quoted monitor record version for conditional configuration changes."
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Enroll a funded deal in Signal with an existing risk package or approved portfolio baseline. AMLOK schedules refreshes and change-driven reassessments. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMonitor"
              },
              "example": {
                "borrower_id": "bor_synthetic",
                "deal": {
                  "institution_reference": "LOAN-0042",
                  "funded_amount": {
                    "amount": "50000.00",
                    "currency": "CAD"
                  },
                  "outstanding_amount": {
                    "amount": "50000.00",
                    "currency": "CAD"
                  },
                  "funded_at": "2026-11-05T12:00:00Z",
                  "maturity_date": "2027-11-06",
                  "repayment_frequency": "monthly",
                  "terms_document_ids": []
                },
                "baseline": {
                  "risk_package_id": "rp_synthetic"
                },
                "risk_policy_version_id": "rpv_synthetic",
                "cadence_id": "cadence_synthetic",
                "connection_ids": [
                  "con_synthetic"
                ]
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/monitors\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: createMonitor-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"borrower_id\":\"bor_synthetic\",\"deal\":{\"institution_reference\":\"LOAN-0042\",\"funded_amount\":{\"amount\":\"50000.00\",\"currency\":\"CAD\"},\"outstanding_amount\":{\"amount\":\"50000.00\",\"currency\":\"CAD\"},\"funded_at\":\"2026-11-05T12:00:00Z\",\"maturity_date\":\"2027-11-06\",\"repayment_frequency\":\"monthly\",\"terms_document_ids\":[]},\"baseline\":{\"risk_package_id\":\"rp_synthetic\"},\"risk_policy_version_id\":\"rpv_synthetic\",\"cadence_id\":\"cadence_synthetic\",\"connection_ids\":[\"con_synthetic\"]}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'createMonitor-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/monitors', headers=headers, json={'borrower_id': 'bor_synthetic', 'deal': {'institution_reference': 'LOAN-0042', 'funded_amount': {'amount': '50000.00', 'currency': 'CAD'}, 'outstanding_amount': {'amount': '50000.00', 'currency': 'CAD'}, 'funded_at': '2026-11-05T12:00:00Z', 'maturity_date': '2027-11-06', 'repayment_frequency': 'monthly', 'terms_document_ids': []}, 'baseline': {'risk_package_id': 'rp_synthetic'}, 'risk_policy_version_id': 'rpv_synthetic', 'cadence_id': 'cadence_synthetic', 'connection_ids': ['con_synthetic']}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"createMonitor-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/monitors\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"borrower_id\": \"bor_synthetic\", \"deal\": {\"institution_reference\": \"LOAN-0042\", \"funded_amount\": {\"amount\": \"50000.00\", \"currency\": \"CAD\"}, \"outstanding_amount\": {\"amount\": \"50000.00\", \"currency\": \"CAD\"}, \"funded_at\": \"2026-11-05T12:00:00Z\", \"maturity_date\": \"2027-11-06\", \"repayment_frequency\": \"monthly\", \"terms_document_ids\": []}, \"baseline\": {\"risk_package_id\": \"rp_synthetic\"}, \"risk_policy_version_id\": \"rpv_synthetic\", \"cadence_id\": \"cadence_synthetic\", \"connection_ids\": [\"con_synthetic\"]})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      },
      "get": {
        "operationId": "listMonitor",
        "summary": "List monitors",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          },
          {
            "name": "institution_reference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "institution reference"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "status"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Monitor"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "mon_synthetic",
                      "borrower_id": "bor_synthetic",
                      "deal": {
                        "institution_reference": "LOAN-0042",
                        "funded_amount": {
                          "amount": "50000.00",
                          "currency": "CAD"
                        },
                        "outstanding_amount": {
                          "amount": "48000.00",
                          "currency": "CAD"
                        },
                        "funded_at": "2026-11-05T12:00:00Z",
                        "maturity_date": "2027-11-06",
                        "repayment_frequency": "monthly",
                        "terms_document_ids": []
                      },
                      "status": "active",
                      "baseline_package_id": "rp_synthetic",
                      "latest_package_id": "rp_signal_synthetic",
                      "risk_policy_version_id": "rpv_synthetic",
                      "cadence_id": "cadence_synthetic",
                      "next_evaluation_at": "2026-11-07T12:00:00Z",
                      "record_version": 1,
                      "connection_ids": [
                        "con_synthetic"
                      ],
                      "requirements": [],
                      "failure": null,
                      "latest_deal_snapshot_id": "ds_synthetic",
                      "updated_at": "2026-11-06T12:00:00Z"
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "List monitor. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/monitors\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/monitors', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/monitors\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/monitors/{id}": {
      "get": {
        "operationId": "getMonitor",
        "summary": "Get monitor",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Monitor"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "mon_synthetic",
                    "borrower_id": "bor_synthetic",
                    "deal": {
                      "institution_reference": "LOAN-0042",
                      "funded_amount": {
                        "amount": "50000.00",
                        "currency": "CAD"
                      },
                      "outstanding_amount": {
                        "amount": "48000.00",
                        "currency": "CAD"
                      },
                      "funded_at": "2026-11-05T12:00:00Z",
                      "maturity_date": "2027-11-06",
                      "repayment_frequency": "monthly",
                      "terms_document_ids": []
                    },
                    "status": "active",
                    "baseline_package_id": "rp_synthetic",
                    "latest_package_id": "rp_signal_synthetic",
                    "risk_policy_version_id": "rpv_synthetic",
                    "cadence_id": "cadence_synthetic",
                    "next_evaluation_at": "2026-11-07T12:00:00Z",
                    "record_version": 1,
                    "connection_ids": [
                      "con_synthetic"
                    ],
                    "requirements": [],
                    "failure": null,
                    "latest_deal_snapshot_id": "ds_synthetic",
                    "updated_at": "2026-11-06T12:00:00Z"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Quoted monitor record version for conditional configuration changes."
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get monitor. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/monitors/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/monitors/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/monitors/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      },
      "patch": {
        "operationId": "updateMonitor",
        "summary": "Update monitor",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:write"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Required ETag from the monitor. Reject stale values with 412."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Monitor"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "mon_synthetic",
                    "borrower_id": "bor_synthetic",
                    "deal": {
                      "institution_reference": "LOAN-0042",
                      "funded_amount": {
                        "amount": "50000.00",
                        "currency": "CAD"
                      },
                      "outstanding_amount": {
                        "amount": "48000.00",
                        "currency": "CAD"
                      },
                      "funded_at": "2026-11-05T12:00:00Z",
                      "maturity_date": "2027-11-06",
                      "repayment_frequency": "monthly",
                      "terms_document_ids": []
                    },
                    "status": "paused",
                    "baseline_package_id": "rp_synthetic",
                    "latest_package_id": "rp_signal_synthetic",
                    "risk_policy_version_id": "rpv_synthetic",
                    "cadence_id": "cadence_synthetic",
                    "next_evaluation_at": null,
                    "record_version": 2,
                    "connection_ids": [
                      "con_synthetic"
                    ],
                    "requirements": [],
                    "failure": null,
                    "latest_deal_snapshot_id": "ds_synthetic",
                    "updated_at": "2026-11-06T12:00:00Z"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Quoted monitor record version for conditional configuration changes."
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "412": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "precondition_failed",
                    "message": "Precondition failed.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Change future monitoring configuration with the current ETag. Historical assessments, alerts, evidence and charges remain immutable. A stopped monitor cannot resume. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMonitor"
              },
              "example": {
                "status": "paused"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request PATCH --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/monitors/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'If-Match: \"1\"' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"status\":\"paused\"}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'If-Match': '\"1\"', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('PATCH', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/monitors/record_synthetic', headers=headers, json={'status': 'paused'}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"If-Match\": \"\\\"1\\\"\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/monitors/record_synthetic\", {\n  method: \"PATCH\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"status\": \"paused\"})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/monitoring-runs": {
      "get": {
        "operationId": "listMonitoringRuns",
        "summary": "List monitoring runs",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          },
          {
            "name": "monitor_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "monitor id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MonitoringRun"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "mr_synthetic",
                      "monitor_id": "mon_synthetic",
                      "status": "partial",
                      "started_at": "2026-11-06T12:00:00Z",
                      "completed_at": "2026-11-06T12:00:00Z",
                      "risk_package_id": "rp_signal_synthetic",
                      "sources": [
                        {
                          "connection_id": "con_synthetic",
                          "integration_id": "bank_synthetic",
                          "source_as_of": "2026-11-01T00:00:00Z",
                          "retrieved_at": "2026-11-06T12:00:00Z",
                          "window": {
                            "start": "2025-11-01T00:00:00Z",
                            "end": "2026-11-01T00:00:00Z"
                          },
                          "status": "partial",
                          "limitations": [
                            "Bank records alone do not establish a complete debt schedule."
                          ]
                        }
                      ],
                      "evidence_set_id": "es_synthetic",
                      "limitations": [
                        "Debt-service data remains incomplete."
                      ],
                      "record_version": 1,
                      "deal_snapshot_id": "ds_synthetic",
                      "failure": null
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Inspect scheduled or change-driven monitoring evaluations, including per-integration freshness, coverage, failures and the resulting risk package. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/monitoring-runs\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/monitoring-runs', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/monitoring-runs\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/monitoring-runs/{id}": {
      "get": {
        "operationId": "getMonitoringRun",
        "summary": "Get monitoring run",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/MonitoringRun"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "mr_synthetic",
                    "monitor_id": "mon_synthetic",
                    "status": "partial",
                    "started_at": "2026-11-06T12:00:00Z",
                    "completed_at": "2026-11-06T12:00:00Z",
                    "risk_package_id": "rp_signal_synthetic",
                    "sources": [
                      {
                        "connection_id": "con_synthetic",
                        "integration_id": "bank_synthetic",
                        "source_as_of": "2026-11-01T00:00:00Z",
                        "retrieved_at": "2026-11-06T12:00:00Z",
                        "window": {
                          "start": "2025-11-01T00:00:00Z",
                          "end": "2026-11-01T00:00:00Z"
                        },
                        "status": "partial",
                        "limitations": [
                          "Bank records alone do not establish a complete debt schedule."
                        ]
                      }
                    ],
                    "evidence_set_id": "es_synthetic",
                    "limitations": [
                      "Debt-service data remains incomplete."
                    ],
                    "record_version": 1,
                    "deal_snapshot_id": "ds_synthetic",
                    "failure": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get monitoring run. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/monitoring-runs/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/monitoring-runs/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/monitoring-runs/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/alerts": {
      "get": {
        "operationId": "listAlerts",
        "summary": "List alerts",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          },
          {
            "name": "monitor_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "monitor id"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "status"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Alert"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "alert_synthetic",
                      "monitor_id": "mon_synthetic",
                      "borrower_id": "bor_synthetic",
                      "status": "open",
                      "severity": "warning",
                      "rule_id": "dscr-minimum",
                      "policy_version_id": "rpv_synthetic",
                      "message": "Required debt-service evidence is unavailable.",
                      "detected_at": "2026-11-06T12:00:00Z",
                      "resolved_at": null,
                      "previous_package_id": "rp_synthetic",
                      "current_package_id": "rp_signal_synthetic",
                      "metric_key": "dscr",
                      "previous_value": null,
                      "current_value": null,
                      "threshold": "1.25",
                      "unit": "ratio",
                      "evidence_ids": [
                        "ev_bank_synthetic"
                      ],
                      "record_version": 1
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read system-derived risk conditions and their evidence. Missing or stale inputs are not a successful risk check. Institutions manage intervention in their own systems. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/alerts\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/alerts', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/alerts\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/alerts/{id}": {
      "get": {
        "operationId": "getAlert",
        "summary": "Get alert",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Alert"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "alert_synthetic",
                    "monitor_id": "mon_synthetic",
                    "borrower_id": "bor_synthetic",
                    "status": "open",
                    "severity": "warning",
                    "rule_id": "dscr-minimum",
                    "policy_version_id": "rpv_synthetic",
                    "message": "Required debt-service evidence is unavailable.",
                    "detected_at": "2026-11-06T12:00:00Z",
                    "resolved_at": null,
                    "previous_package_id": "rp_synthetic",
                    "current_package_id": "rp_signal_synthetic",
                    "metric_key": "dscr",
                    "previous_value": null,
                    "current_value": null,
                    "threshold": "1.25",
                    "unit": "ratio",
                    "evidence_ids": [
                      "ev_bank_synthetic"
                    ],
                    "record_version": 1
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get alert. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/alerts/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/alerts/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/alerts/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/events": {
      "get": {
        "operationId": "listEvents",
        "summary": "List events",
        "tags": [
          "Events"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "events:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "type"
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "now"
              ]
            },
            "description": "Capture the current durable feed position with an empty page before initial collection bootstrap. Cannot be combined with cursor. Resume with the returned resume_cursor."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Event"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/EventPage"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "evt_synthetic",
                      "type": "origination.completed",
                      "occurred_at": "2026-11-06T12:00:00Z",
                      "resource_type": "origination",
                      "resource_id": "orgn_synthetic",
                      "resource_version": 4,
                      "borrower_id": "bor_synthetic",
                      "environment": "sandbox"
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "resume_cursor": "resume_synthetic",
                    "resume_expires_at": "2026-12-06T12:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read the durable event feed. Start with start=now before a snapshot bootstrap, then retain resume_cursor after each committed batch. Delivery order is not resource-version order. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/events\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/events', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/events\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/events/{id}": {
      "get": {
        "operationId": "getEvent",
        "summary": "Get event",
        "tags": [
          "Events"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "events:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "evt_synthetic",
                    "type": "origination.completed",
                    "occurred_at": "2026-11-06T12:00:00Z",
                    "resource_type": "origination",
                    "resource_id": "orgn_synthetic",
                    "resource_version": 4,
                    "borrower_id": "bor_synthetic",
                    "environment": "sandbox"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get event. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/events/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/events/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/events/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/exports": {
      "post": {
        "operationId": "createExport",
        "summary": "Create export",
        "tags": [
          "Exports"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "exports:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted asynchronously; inspect status, not just HTTP success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Export"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "exp_synthetic",
                    "status": "queued",
                    "created_at": "2026-11-06T12:00:00Z",
                    "format": "json",
                    "source": {
                      "kind": "risk_package",
                      "risk_package_id": "rp_synthetic",
                      "format": "json"
                    },
                    "failure": null,
                    "record_version": 1,
                    "expires_at": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Prepare a risk package, evidence set or billing report for download. Each kind requires its own source permissions in addition to export access. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:write. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExport"
              },
              "example": {
                "kind": "risk_package",
                "risk_package_id": "rp_synthetic",
                "format": "json"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/exports\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: createExport-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"kind\":\"risk_package\",\"risk_package_id\":\"rp_synthetic\",\"format\":\"json\"}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'createExport-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/exports', headers=headers, json={'kind': 'risk_package', 'risk_package_id': 'rp_synthetic', 'format': 'json'}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"createExport-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/exports\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"kind\": \"risk_package\", \"risk_package_id\": \"rp_synthetic\", \"format\": \"json\"})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/exports/{id}": {
      "get": {
        "operationId": "getExport",
        "summary": "Get export",
        "tags": [
          "Exports"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "exports:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Export"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "exp_synthetic",
                    "status": "queued",
                    "created_at": "2026-11-06T12:00:00Z",
                    "format": "json",
                    "source": {
                      "kind": "risk_package",
                      "risk_package_id": "rp_synthetic",
                      "format": "json"
                    },
                    "failure": null,
                    "record_version": 1,
                    "expires_at": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Get export. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:read. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/exports/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/exports/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/exports/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/exports/{id}/download-links": {
      "post": {
        "operationId": "downloadExport",
        "summary": "Download export",
        "tags": [
          "Exports"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "exports:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DownloadLink"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "url": "https://downloads.example.com/synthetic",
                    "expires_at": "2026-11-06T12:05:00Z",
                    "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
                    "mime_type": "application/json"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Download export. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:read. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DownloadPurpose"
              },
              "example": {
                "purpose": "Institution underwriting review"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/exports/record_synthetic/download-links\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: downloadExport-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"purpose\":\"Institution underwriting review\"}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'downloadExport-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/exports/record_synthetic/download-links', headers=headers, json={'purpose': 'Institution underwriting review'}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"downloadExport-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/exports/record_synthetic/download-links\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"purpose\": \"Institution underwriting review\"})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/webhook-deliveries": {
      "get": {
        "operationId": "listDeliveries",
        "summary": "List deliveries",
        "tags": [
          "Events"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "events:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "event_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "event id"
          },
          {
            "name": "endpoint_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "endpoint id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Delivery"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "del_synthetic",
                      "event_id": "evt_synthetic",
                      "endpoint_id": "dest_synthetic",
                      "attempt": 1,
                      "status": "delivered",
                      "attempted_at": "2026-11-06T12:00:00Z",
                      "http_status": 200
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "List deliveries. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/webhook-deliveries\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/webhook-deliveries', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/webhook-deliveries\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/webhook-replays": {
      "post": {
        "operationId": "replayEvent",
        "summary": "Replay event",
        "tags": [
          "Events"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "events:write"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted asynchronously; inspect status, not just HTTP success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/ReplayReceipt"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "replay_synthetic",
                    "event_id": "evt_synthetic",
                    "status": "accepted"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Requeue an event for an existing console-managed webhook destination. Replay only retries delivery; it never reruns analysis or adds usage charges. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:write. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplayEvent"
              },
              "example": {
                "event_id": "evt_synthetic",
                "endpoint_id": "dest_synthetic"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/webhook-replays\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: replayEvent-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"event_id\":\"evt_synthetic\",\"endpoint_id\":\"dest_synthetic\"}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'replayEvent-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/webhook-replays', headers=headers, json={'event_id': 'evt_synthetic', 'endpoint_id': 'dest_synthetic'}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"replayEvent-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/webhook-replays\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"event_id\": \"evt_synthetic\", \"endpoint_id\": \"dest_synthetic\"})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/billing/summary": {
      "get": {
        "operationId": "getBillingSummary",
        "summary": "Get billing summary",
        "tags": [
          "Billing"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "billing:read"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/BillingSummary"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "as_of": "2026-11-06T12:00:00Z",
                    "currency": "CAD",
                    "available_credits": "4935.00",
                    "spent_credits": "65.00",
                    "billing_account_id": "billing_synthetic",
                    "snapshot_id": "snap_synthetic",
                    "paid_funding_credits": "5000.00",
                    "promotional_credits": "0.00",
                    "adjustment_credits": "0.00",
                    "refunded_credits": "0.00",
                    "auto_pay": {
                      "enabled": false,
                      "trigger_amount": "200.00",
                      "top_up_amount": "500.00"
                    },
                    "snapshot_expires_at": "2026-11-06T13:00:00Z"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read the selected workspace CAD wallet shared across Insights and Signal. Payment methods and automatic funding controls belong to the organization billing console. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/billing/summary\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/billing/summary', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/billing/summary\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/billing/transactions": {
      "get": {
        "operationId": "listBillingTransactions",
        "summary": "List billing transactions",
        "tags": [
          "Billing"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "billing:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "snapshot_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "snapshot id"
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "funding",
                "usage",
                "adjustment",
                "final_refund"
              ]
            },
            "description": "kind"
          },
          {
            "name": "product",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "insights",
                "signal"
              ]
            },
            "description": "product"
          },
          {
            "name": "payment_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "payment id"
          },
          {
            "name": "usage_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "usage id"
          },
          {
            "name": "posted_from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "posted from. UTC ranges are inclusive from and exclusive to; reject to <= from."
          },
          {
            "name": "posted_to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "posted to. UTC ranges are inclusive from and exclusive to; reject to <= from."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/BillingTransaction"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "txn_usage_synthetic",
                      "snapshot_id": "snap_synthetic",
                      "posted_at": "2026-11-06T12:00:00Z",
                      "amount": "-40.00",
                      "currency": "CAD",
                      "kind": "usage",
                      "product": "insights",
                      "description": "Synthetic underwriting usage, not a price quotation.",
                      "usage_id": "usage_synthetic",
                      "payment_id": null,
                      "borrower_id": "bor_synthetic",
                      "balance_after": "4935.00",
                      "sequence": 3,
                      "funding_type": null,
                      "record_version": 1,
                      "related_transaction_id": null
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read immutable workspace funding, usage, adjustment and final-refund entries. Use typed billing exports for detailed statements, workload and historical rates. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/billing/transactions\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/billing/transactions', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/billing/transactions\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/configuration": {
      "get": {
        "operationId": "getConfiguration",
        "summary": "Get configuration",
        "tags": [
          "Configuration"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "configuration:read"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Configuration"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "products": [
                      "insights",
                      "signal"
                    ],
                    "embedding_version_ids": [
                      "embed_synthetic"
                    ],
                    "application_schemas": [
                      {
                        "id": "app_schema_synthetic",
                        "version": "1",
                        "json_schema": {
                          "type": "object",
                          "required": [
                            "annual_revenue"
                          ],
                          "properties": {
                            "annual_revenue": {
                              "type": "string",
                              "pattern": "^[0-9]+\\.[0-9]{2}$"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      {
                        "id": "consumer_app_schema_synthetic",
                        "version": "1",
                        "json_schema": {
                          "type": "object",
                          "required": [
                            "gross_monthly_income",
                            "monthly_debt_payments"
                          ],
                          "properties": {
                            "gross_monthly_income": {
                              "type": "string",
                              "pattern": "^[0-9]+\\.[0-9]{2}$"
                            },
                            "monthly_debt_payments": {
                              "type": "string",
                              "pattern": "^[0-9]+\\.[0-9]{2}$"
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    ],
                    "pricing_schemas": [
                      {
                        "id": "pricing_synthetic",
                        "version": "1",
                        "json_schema": {
                          "type": "object",
                          "required": [
                            "rate_type",
                            "annual_interest_rate",
                            "amortization_months",
                            "fees"
                          ],
                          "properties": {
                            "rate_type": {
                              "const": "fixed"
                            },
                            "annual_interest_rate": {
                              "type": "string"
                            },
                            "amortization_months": {
                              "type": "integer",
                              "minimum": 1
                            },
                            "fees": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    ],
                    "cadences": [
                      {
                        "id": "cadence_synthetic",
                        "description": "Illustrative daily schedule; use your provisioned cadence."
                      }
                    ],
                    "dimensions": [
                      {
                        "key": "business_age_months",
                        "dimension_key": "identity",
                        "label": "Business age",
                        "description": "Business age. Whole calendar months from verified formation date to assessment date.",
                        "unit": "months",
                        "formula": "Whole calendar months from verified formation date to assessment date",
                        "required_inputs": [
                          "Verified formation date",
                          "assessment date",
                          "business only"
                        ],
                        "eligibility": "Identity and account-ownership checks identify inconsistencies; they do not substitute for financial capacity.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "identity",
                          "registry",
                          "banking",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-business_age_months-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "verified_account_owner_ratio",
                        "dimension_key": "identity",
                        "label": "Verified account ownership share",
                        "description": "Verified account ownership share. Accounts with positively matched ownership divided by eligible disclosed connected accounts.",
                        "unit": "ratio",
                        "formula": "Accounts with positively matched ownership divided by eligible disclosed connected accounts",
                        "required_inputs": [
                          "Account ownership evidence and resolved borrower identity",
                          "nonzero eligible-account count"
                        ],
                        "eligibility": "Identity and account-ownership checks identify inconsistencies; they do not substitute for financial capacity.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "identity",
                          "registry",
                          "banking",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-verified_account_owner_ratio-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "ownership_disclosed_ratio",
                        "dimension_key": "ownership_and_control",
                        "label": "Disclosed ownership share",
                        "description": "Disclosed ownership share. Sum of supported non-overlapping ownership fractions in the assessed entity.",
                        "unit": "ratio",
                        "formula": "Sum of supported non-overlapping ownership fractions in the assessed entity",
                        "required_inputs": [
                          "Current ownership register",
                          "common share basis",
                          "do not double-count direct and indirect paths"
                        ],
                        "eligibility": "Use documented beneficial ownership, control, guarantees and related-party exposure. Do not infer family relationships or hidden ownership.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "registry",
                          "identity",
                          "accounting",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-ownership_disclosed_ratio-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "related_party_balance_share",
                        "dimension_key": "ownership_and_control",
                        "label": "Related-party receivables share",
                        "description": "Related-party receivables share. Related-party receivables divided by total receivables.",
                        "unit": "ratio",
                        "formula": "Related-party receivables divided by total receivables",
                        "required_inputs": [
                          "Resolved related parties and same-date receivables",
                          "positive total receivables"
                        ],
                        "eligibility": "Use documented beneficial ownership, control, guarantees and related-party exposure. Do not infer family relationships or hidden ownership.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "registry",
                          "identity",
                          "accounting",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-related_party_balance_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "supported_guarantee_coverage",
                        "dimension_key": "ownership_and_control",
                        "label": "Supported guarantee coverage",
                        "description": "Supported guarantee coverage. Documented collectible guarantee amount capped at exposure divided by exposure.",
                        "unit": "ratio",
                        "formula": "Documented collectible guarantee amount capped at exposure divided by exposure",
                        "required_inputs": [
                          "Guarantee terms, guarantor assessment, currency and exposure",
                          "positive exposure",
                          "no unsupported collectible value"
                        ],
                        "eligibility": "Use documented beneficial ownership, control, guarantees and related-party exposure. Do not infer family relationships or hidden ownership.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "registry",
                          "identity",
                          "accounting",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-supported_guarantee_coverage-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "total_inflows",
                        "dimension_key": "cashflow",
                        "label": "Posted inflows",
                        "description": "Posted inflows. Sum posted inflow magnitudes before transfer or revenue exclusions.",
                        "unit": "currency",
                        "formula": "Sum posted inflow magnitudes before transfer or revenue exclusions",
                        "required_inputs": [
                          "Complete eligible transaction set for the window, scope and currency"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-total_inflows-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "total_outflows",
                        "dimension_key": "cashflow",
                        "label": "Posted outflows",
                        "description": "Posted outflows. Sum posted outflow magnitudes before transfer or operating exclusions.",
                        "unit": "currency",
                        "formula": "Sum posted outflow magnitudes before transfer or operating exclusions",
                        "required_inputs": [
                          "Complete eligible transaction set for the window, scope and currency"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-total_outflows-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "net_cash_flow",
                        "dimension_key": "cashflow",
                        "label": "Net cash flow",
                        "description": "Net cash flow. Posted inflows minus posted outflows after consolidation transfer elimination.",
                        "unit": "currency",
                        "formula": "Posted inflows minus posted outflows after consolidation transfer elimination",
                        "required_inputs": [
                          "Matched transfers, complete transactions and consistent scope/currency"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-net_cash_flow-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "operating_cash_inflows",
                        "dimension_key": "cashflow",
                        "label": "Operating receipts",
                        "description": "Operating receipts. Sum classified operating receipts excluding financing, internal transfers and owner injections.",
                        "unit": "currency",
                        "formula": "Sum classified operating receipts excluding financing, internal transfers and owner injections",
                        "required_inputs": [
                          "Supported transaction classifications and explicit exclusion bridge"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-operating_cash_inflows-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "operating_cash_outflows",
                        "dimension_key": "cashflow",
                        "label": "Operating cash payments",
                        "description": "Operating cash payments. Sum operating outflows excluding financing principal, capital expenditures and matched transfers.",
                        "unit": "currency",
                        "formula": "Sum operating outflows excluding financing principal, capital expenditures and matched transfers",
                        "required_inputs": [
                          "Supported classifications and cash-flow basis",
                          "interest/tax treatment disclosed"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-operating_cash_outflows-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "operating_net_cash_flow",
                        "dimension_key": "cashflow",
                        "label": "Net operating cash flow",
                        "description": "Net operating cash flow. Operating receipts minus operating cash payments.",
                        "unit": "currency",
                        "formula": "Operating receipts minus operating cash payments",
                        "required_inputs": [
                          "Same-window receipts/outflows and documented classification basis"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-operating_net_cash_flow-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "internal_transfer_inflows",
                        "dimension_key": "cashflow",
                        "label": "Internal transfer inflows",
                        "description": "Internal transfer inflows. Sum inflows matched to outflows within the consolidation scope.",
                        "unit": "currency",
                        "formula": "Sum inflows matched to outflows within the consolidation scope",
                        "required_inputs": [
                          "Supported transfer pairs with stable IDs and explicit FX treatment"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-internal_transfer_inflows-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "financing_inflows",
                        "dimension_key": "cashflow",
                        "label": "Financing inflows",
                        "description": "Financing inflows. Sum identified debt and equity financing receipts.",
                        "unit": "currency",
                        "formula": "Sum identified debt and equity financing receipts",
                        "required_inputs": [
                          "Financing classification and evidence",
                          "uncertain receipts remain unclassified"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-financing_inflows-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "positive_cashflow_month_share",
                        "dimension_key": "cashflow",
                        "label": "Positive cash-flow months",
                        "description": "Positive cash-flow months. Complete months with positive net cash flow divided by complete covered months.",
                        "unit": "ratio",
                        "formula": "Complete months with positive net cash flow divided by complete covered months",
                        "required_inputs": [
                          "At least three complete months and consistent account scope"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-positive_cashflow_month_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "cashflow_volatility",
                        "dimension_key": "cashflow",
                        "label": "Operating cash-flow volatility",
                        "description": "Operating cash-flow volatility. Population standard deviation of complete monthly net operating cash flow divided by absolute mean.",
                        "unit": "ratio",
                        "formula": "Population standard deviation of complete monthly net operating cash flow divided by absolute mean",
                        "required_inputs": [
                          "At least six complete months",
                          "nonzero mean",
                          "disclose near-zero denominator sensitivity"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-cashflow_volatility-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "cashflow_change_90d",
                        "dimension_key": "cashflow",
                        "label": "Operating cash-flow change",
                        "description": "Operating cash-flow change. Current 90-day operating net flow minus previous 90-day flow, divided by absolute previous flow.",
                        "unit": "ratio",
                        "formula": "Current 90-day operating net flow minus previous 90-day flow, divided by absolute previous flow",
                        "required_inputs": [
                          "Two complete comparable 90-day windows",
                          "nonzero previous flow"
                        ],
                        "eligibility": "Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-cashflow_change_90d-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "unrestricted_cash",
                        "dimension_key": "liquidity",
                        "label": "Unrestricted cash",
                        "description": "Unrestricted cash. Sum verified cash balances available for use, excluding restricted balances.",
                        "unit": "currency",
                        "formula": "Sum verified cash balances available for use, excluding restricted balances",
                        "required_inputs": [
                          "Same-as-of reconciled balances and restriction status"
                        ],
                        "eligibility": "Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-unrestricted_cash-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "average_daily_balance",
                        "dimension_key": "liquidity",
                        "label": "Average daily cash balance",
                        "description": "Average daily cash balance. Sum end-of-day balances divided by covered calendar days.",
                        "unit": "currency",
                        "formula": "Sum end-of-day balances divided by covered calendar days",
                        "required_inputs": [
                          "Complete reconciled daily balances for the selected account scope"
                        ],
                        "eligibility": "Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-average_daily_balance-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "minimum_daily_balance",
                        "dimension_key": "liquidity",
                        "label": "Minimum daily cash balance",
                        "description": "Minimum daily cash balance. Minimum consolidated end-of-day balance.",
                        "unit": "currency",
                        "formula": "Minimum consolidated end-of-day balance",
                        "required_inputs": [
                          "Complete comparable daily balances",
                          "disclose observed versus reconstructed basis"
                        ],
                        "eligibility": "Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-minimum_daily_balance-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "negative_balance_days",
                        "dimension_key": "liquidity",
                        "label": "Days below zero",
                        "description": "Days below zero. Count covered days with negative consolidated end-of-day balance.",
                        "unit": "days",
                        "formula": "Count covered days with negative consolidated end-of-day balance",
                        "required_inputs": [
                          "Complete daily balance series",
                          "no missing day treated as zero"
                        ],
                        "eligibility": "Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-negative_balance_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "cash_buffer_days",
                        "dimension_key": "liquidity",
                        "label": "Cash buffer",
                        "description": "Cash buffer. Unrestricted cash divided by mean daily essential cash outflows.",
                        "unit": "days",
                        "formula": "Unrestricted cash divided by mean daily essential cash outflows",
                        "required_inputs": [
                          "Positive essential-outflow denominator",
                          "current cash",
                          "documented window and exclusions"
                        ],
                        "eligibility": "Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-cash_buffer_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "current_ratio",
                        "dimension_key": "liquidity",
                        "label": "Current ratio",
                        "description": "Current ratio. Current assets divided by current liabilities.",
                        "unit": "ratio",
                        "formula": "Current assets divided by current liabilities",
                        "required_inputs": [
                          "Same-date classified balance sheet",
                          "positive current liabilities"
                        ],
                        "eligibility": "Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-current_ratio-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "quick_ratio",
                        "dimension_key": "liquidity",
                        "label": "Quick ratio",
                        "description": "Quick ratio. Cash plus short-term investments plus eligible receivables, divided by current liabilities.",
                        "unit": "ratio",
                        "formula": "Cash plus short-term investments plus eligible receivables, divided by current liabilities",
                        "required_inputs": [
                          "Same-date asset/liability classifications",
                          "positive current liabilities"
                        ],
                        "eligibility": "Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-quick_ratio-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "cash_ratio",
                        "dimension_key": "liquidity",
                        "label": "Cash ratio",
                        "description": "Cash ratio. Unrestricted cash and cash equivalents divided by current liabilities.",
                        "unit": "ratio",
                        "formula": "Unrestricted cash and cash equivalents divided by current liabilities",
                        "required_inputs": [
                          "Same-date balances",
                          "positive current liabilities"
                        ],
                        "eligibility": "Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-cash_ratio-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "verified_revenue",
                        "dimension_key": "revenue_quality",
                        "label": "Verified revenue",
                        "description": "Verified revenue. Sum supported revenue on the declared cash or accrual basis after exclusions.",
                        "unit": "currency",
                        "formula": "Sum supported revenue on the declared cash or accrual basis after exclusions",
                        "required_inputs": [
                          "Reconciled bank, accounting or commerce evidence",
                          "taxes, financing and transfers excluded"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-verified_revenue-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "recurring_revenue_share",
                        "dimension_key": "revenue_quality",
                        "label": "Recurring revenue share",
                        "description": "Recurring revenue share. Supported recurring revenue divided by total verified revenue.",
                        "unit": "ratio",
                        "formula": "Supported recurring revenue divided by total verified revenue",
                        "required_inputs": [
                          "Defined recurrence rule and matched periods",
                          "positive total revenue"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-recurring_revenue_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "revenue_growth_yoy",
                        "dimension_key": "revenue_quality",
                        "label": "Revenue growth year over year",
                        "description": "Revenue growth year over year. Current-period revenue minus prior-year comparable revenue, divided by prior-year revenue.",
                        "unit": "ratio",
                        "formula": "Current-period revenue minus prior-year comparable revenue, divided by prior-year revenue",
                        "required_inputs": [
                          "Comparable periods separated by one year",
                          "positive prior revenue"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-revenue_growth_yoy-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "revenue_growth_90d",
                        "dimension_key": "revenue_quality",
                        "label": "Revenue growth over 90 days",
                        "description": "Revenue growth over 90 days. Current 90-day revenue minus preceding 90-day revenue, divided by preceding revenue.",
                        "unit": "ratio",
                        "formula": "Current 90-day revenue minus preceding 90-day revenue, divided by preceding revenue",
                        "required_inputs": [
                          "Two complete 90-day periods",
                          "positive prior revenue"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-revenue_growth_90d-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "revenue_volatility",
                        "dimension_key": "revenue_quality",
                        "label": "Monthly revenue volatility",
                        "description": "Monthly revenue volatility. Population standard deviation of monthly revenue divided by mean monthly revenue.",
                        "unit": "ratio",
                        "formula": "Population standard deviation of monthly revenue divided by mean monthly revenue",
                        "required_inputs": [
                          "At least six complete months",
                          "positive mean",
                          "consistent recognition basis"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-revenue_volatility-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "refund_amount_share",
                        "dimension_key": "revenue_quality",
                        "label": "Refund amount share",
                        "description": "Refund amount share. Refunded sales amount divided by eligible gross sales amount.",
                        "unit": "ratio",
                        "formula": "Refunded sales amount divided by eligible gross sales amount",
                        "required_inputs": [
                          "Matched sales/refund cohort and treatment of late refunds",
                          "positive gross sales"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-refund_amount_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "chargeback_amount_share",
                        "dimension_key": "revenue_quality",
                        "label": "Chargeback amount share",
                        "description": "Chargeback amount share. Disputed chargeback amount divided by eligible processed sales amount.",
                        "unit": "ratio",
                        "formula": "Disputed chargeback amount divided by eligible processed sales amount",
                        "required_inputs": [
                          "Matched processing cohort and consistent chargeback stage",
                          "positive denominator"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-chargeback_amount_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "revenue_cash_realization",
                        "dimension_key": "revenue_quality",
                        "label": "Revenue cash realization",
                        "description": "Revenue cash realization. Matched collections on recognized sales divided by recognized sales.",
                        "unit": "ratio",
                        "formula": "Matched collections on recognized sales divided by recognized sales",
                        "required_inputs": [
                          "Defined collection horizon and sales cohort",
                          "positive recognized sales",
                          "not raw deposits/revenue"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-revenue_cash_realization-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "unverified_receipts_share",
                        "dimension_key": "revenue_quality",
                        "label": "Unverified receipts share",
                        "description": "Unverified receipts share. Unclassified or unsupported operating-like receipts divided by total candidate receipts.",
                        "unit": "ratio",
                        "formula": "Unclassified or unsupported operating-like receipts divided by total candidate receipts",
                        "required_inputs": [
                          "Classification coverage and positive candidate receipts"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-unverified_receipts_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "nonrecurring_revenue_share",
                        "dimension_key": "revenue_quality",
                        "label": "Nonrecurring revenue share",
                        "description": "Nonrecurring revenue share. Identified nonrecurring revenue divided by verified revenue.",
                        "unit": "ratio",
                        "formula": "Identified nonrecurring revenue divided by verified revenue",
                        "required_inputs": [
                          "Versioned recurrence criteria and positive revenue"
                        ],
                        "eligibility": "Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "payments",
                          "commerce",
                          "accounting"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-nonrecurring_revenue_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "gross_profit",
                        "dimension_key": "profitability",
                        "label": "Gross profit",
                        "description": "Gross profit. Recognized revenue minus cost of goods sold.",
                        "unit": "currency",
                        "formula": "Recognized revenue minus cost of goods sold",
                        "required_inputs": [
                          "Same-period income statement with classified COGS"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-gross_profit-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "gross_margin",
                        "dimension_key": "profitability",
                        "label": "Gross margin",
                        "description": "Gross margin. Gross profit divided by recognized revenue.",
                        "unit": "ratio",
                        "formula": "Gross profit divided by recognized revenue",
                        "required_inputs": [
                          "Positive revenue and consistent accounting basis"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-gross_margin-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "ebitda",
                        "dimension_key": "profitability",
                        "label": "EBITDA",
                        "description": "EBITDA. Net income plus income tax expense, interest expense, depreciation and amortization.",
                        "unit": "currency",
                        "formula": "Net income plus income tax expense, interest expense, depreciation and amortization",
                        "required_inputs": [
                          "Complete supported statement line items",
                          "no automatic discretionary addbacks"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-ebitda-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "ebitda_margin",
                        "dimension_key": "profitability",
                        "label": "EBITDA margin",
                        "description": "EBITDA margin. EBITDA divided by recognized revenue.",
                        "unit": "ratio",
                        "formula": "EBITDA divided by recognized revenue",
                        "required_inputs": [
                          "Positive revenue and supported EBITDA"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-ebitda_margin-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "operating_profit",
                        "dimension_key": "profitability",
                        "label": "Operating profit",
                        "description": "Operating profit. Revenue minus COGS and operating expenses.",
                        "unit": "currency",
                        "formula": "Revenue minus COGS and operating expenses",
                        "required_inputs": [
                          "Complete same-period operating statement",
                          "financing excluded"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-operating_profit-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "operating_margin",
                        "dimension_key": "profitability",
                        "label": "Operating margin",
                        "description": "Operating margin. Operating profit divided by revenue.",
                        "unit": "ratio",
                        "formula": "Operating profit divided by revenue",
                        "required_inputs": [
                          "Positive recognized revenue"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-operating_margin-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "net_profit",
                        "dimension_key": "profitability",
                        "label": "Net profit",
                        "description": "Net profit. Total recognized income minus all recognized expenses.",
                        "unit": "currency",
                        "formula": "Total recognized income minus all recognized expenses",
                        "required_inputs": [
                          "Complete statement on declared accounting basis"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-net_profit-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "net_margin",
                        "dimension_key": "profitability",
                        "label": "Net margin",
                        "description": "Net margin. Net profit divided by recognized revenue.",
                        "unit": "ratio",
                        "formula": "Net profit divided by recognized revenue",
                        "required_inputs": [
                          "Positive recognized revenue"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-net_margin-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "free_cash_flow",
                        "dimension_key": "profitability",
                        "label": "Free cash flow",
                        "description": "Free cash flow. Operating cash flow minus cash capital expenditures.",
                        "unit": "currency",
                        "formula": "Operating cash flow minus cash capital expenditures",
                        "required_inputs": [
                          "Reconciled cash-flow statement or supported cash reconstruction",
                          "no debt proceeds"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-free_cash_flow-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "return_on_assets",
                        "dimension_key": "profitability",
                        "label": "Return on assets",
                        "description": "Return on assets. Period net profit divided by mean opening and closing total assets.",
                        "unit": "ratio",
                        "formula": "Period net profit divided by mean opening and closing total assets",
                        "required_inputs": [
                          "Positive average assets and complete period",
                          "disclose annualization, never apply silently"
                        ],
                        "eligibility": "Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-return_on_assets-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "net_working_capital",
                        "dimension_key": "working_capital",
                        "label": "Net working capital",
                        "description": "Net working capital. Current assets minus current liabilities.",
                        "unit": "currency",
                        "formula": "Current assets minus current liabilities",
                        "required_inputs": [
                          "Same-date classified balance sheet"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-net_working_capital-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "receivables_days",
                        "dimension_key": "working_capital",
                        "label": "Receivable days",
                        "description": "Receivable days. Average trade receivables divided by credit sales, multiplied by period days.",
                        "unit": "days",
                        "formula": "Average trade receivables divided by credit sales, multiplied by period days",
                        "required_inputs": [
                          "Positive credit sales",
                          "opening/closing receivables",
                          "same accounting period"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-receivables_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "payables_days",
                        "dimension_key": "working_capital",
                        "label": "Payable days",
                        "description": "Payable days. Average trade payables divided by credit purchases, multiplied by period days.",
                        "unit": "days",
                        "formula": "Average trade payables divided by credit purchases, multiplied by period days",
                        "required_inputs": [
                          "Positive credit purchases",
                          "opening/closing payables",
                          "do not substitute COGS silently"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-payables_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "inventory_days",
                        "dimension_key": "working_capital",
                        "label": "Inventory days",
                        "description": "Inventory days. Average inventory divided by COGS, multiplied by period days.",
                        "unit": "days",
                        "formula": "Average inventory divided by COGS, multiplied by period days",
                        "required_inputs": [
                          "Positive COGS",
                          "opening/closing comparable inventory valuation"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-inventory_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "cash_conversion_cycle",
                        "dimension_key": "working_capital",
                        "label": "Cash conversion cycle",
                        "description": "Cash conversion cycle. Receivable days plus inventory days minus payable days.",
                        "unit": "days",
                        "formula": "Receivable days plus inventory days minus payable days",
                        "required_inputs": [
                          "All three components available on comparable periods and basis"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-cash_conversion_cycle-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "ar_overdue_share",
                        "dimension_key": "working_capital",
                        "label": "Overdue receivables share",
                        "description": "Overdue receivables share. Overdue collectible trade receivables divided by total collectible trade receivables.",
                        "unit": "ratio",
                        "formula": "Overdue collectible trade receivables divided by total collectible trade receivables",
                        "required_inputs": [
                          "Due dates and same-as-of open balances",
                          "positive receivables"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-ar_overdue_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "ar_90_plus_share",
                        "dimension_key": "working_capital",
                        "label": "Receivables over 90 days past due",
                        "description": "Receivables over 90 days past due. Receivables more than 90 days past due divided by total trade receivables.",
                        "unit": "ratio",
                        "formula": "Receivables more than 90 days past due divided by total trade receivables",
                        "required_inputs": [
                          "Aging based on due date, not invoice date",
                          "positive receivables"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-ar_90_plus_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "ap_overdue_share",
                        "dimension_key": "working_capital",
                        "label": "Overdue payables share",
                        "description": "Overdue payables share. Overdue trade payables divided by total trade payables.",
                        "unit": "ratio",
                        "formula": "Overdue trade payables divided by total trade payables",
                        "required_inputs": [
                          "Due dates and open balances",
                          "positive payables"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-ap_overdue_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "inventory_turnover",
                        "dimension_key": "working_capital",
                        "label": "Inventory turnover",
                        "description": "Inventory turnover. Period COGS divided by average inventory.",
                        "unit": "ratio",
                        "formula": "Period COGS divided by average inventory",
                        "required_inputs": [
                          "Positive comparable inventory and supported COGS"
                        ],
                        "eligibility": "Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "commerce",
                          "inventory"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-inventory_turnover-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "total_debt",
                        "dimension_key": "leverage",
                        "label": "Total interest-bearing debt",
                        "description": "Total interest-bearing debt. Sum outstanding principal of resolved interest-bearing obligations.",
                        "unit": "currency",
                        "formula": "Sum outstanding principal of resolved interest-bearing obligations",
                        "required_inputs": [
                          "Complete disclosed and supported debt inventory",
                          "leases treatment explicit"
                        ],
                        "eligibility": "Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-total_debt-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "net_debt",
                        "dimension_key": "leverage",
                        "label": "Net debt",
                        "description": "Net debt. Total debt minus unrestricted cash eligible for offset.",
                        "unit": "currency",
                        "formula": "Total debt minus unrestricted cash eligible for offset",
                        "required_inputs": [
                          "Same-as-of currency and consolidated scope"
                        ],
                        "eligibility": "Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-net_debt-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "debt_to_assets",
                        "dimension_key": "leverage",
                        "label": "Debt to assets",
                        "description": "Debt to assets. Total interest-bearing debt divided by total assets.",
                        "unit": "ratio",
                        "formula": "Total interest-bearing debt divided by total assets",
                        "required_inputs": [
                          "Positive total assets and matched scope",
                          "excludes non-debt liabilities by definition"
                        ],
                        "eligibility": "Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-debt_to_assets-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "debt_to_equity",
                        "dimension_key": "leverage",
                        "label": "Debt to equity",
                        "description": "Debt to equity. Total debt divided by equity.",
                        "unit": "ratio",
                        "formula": "Total debt divided by equity",
                        "required_inputs": [
                          "Positive equity",
                          "zero/negative equity produces unavailable ratio and a separate finding"
                        ],
                        "eligibility": "Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-debt_to_equity-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "net_debt_to_ebitda",
                        "dimension_key": "leverage",
                        "label": "Net debt to EBITDA",
                        "description": "Net debt to EBITDA. Net debt divided by trailing-12-month EBITDA.",
                        "unit": "ratio",
                        "formula": "Net debt divided by trailing-12-month EBITDA",
                        "required_inputs": [
                          "Positive EBITDA and complete 12-month period"
                        ],
                        "eligibility": "Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-net_debt_to_ebitda-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "credit_utilization",
                        "dimension_key": "leverage",
                        "label": "Revolving credit utilization",
                        "description": "Revolving credit utilization. Used revolving principal divided by committed revolving limits.",
                        "unit": "ratio",
                        "formula": "Used revolving principal divided by committed revolving limits",
                        "required_inputs": [
                          "Positive known limits",
                          "distinguish drawn balances from pending authorizations"
                        ],
                        "eligibility": "Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-credit_utilization-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "short_term_debt_share",
                        "dimension_key": "leverage",
                        "label": "Debt due within one year",
                        "description": "Debt due within one year. Principal contractually due within 365 days divided by total debt.",
                        "unit": "ratio",
                        "formula": "Principal contractually due within 365 days divided by total debt",
                        "required_inputs": [
                          "Complete maturity schedule and positive total debt"
                        ],
                        "eligibility": "Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-short_term_debt_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "debt_maturing_90d",
                        "dimension_key": "leverage",
                        "label": "Debt maturing within 90 days",
                        "description": "Debt maturing within 90 days. Sum principal contractually due within the next 90 days.",
                        "unit": "currency",
                        "formula": "Sum principal contractually due within the next 90 days",
                        "required_inputs": [
                          "Complete maturity schedule including balloon payments"
                        ],
                        "eligibility": "Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-debt_maturing_90d-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "dscr",
                        "dimension_key": "repayment_capacity",
                        "label": "Cash-flow debt-service coverage",
                        "description": "Cash-flow debt-service coverage. Eligible cash flow available for debt service divided by existing plus proposed contractual debt service.",
                        "unit": "ratio",
                        "formula": "Eligible cash flow available for debt service divided by existing plus proposed contractual debt service",
                        "required_inputs": [
                          "Complete eligible cash-flow bridge and existing/proposed principal, interest and mandatory debt fees for the same period",
                          "positive debt service"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-dscr-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "fixed_charge_coverage",
                        "dimension_key": "repayment_capacity",
                        "label": "Fixed-charge coverage",
                        "description": "Fixed-charge coverage. Cash flow before the specified fixed charges divided by those fixed charges.",
                        "unit": "ratio",
                        "formula": "Cash flow before the specified fixed charges divided by those fixed charges",
                        "required_inputs": [
                          "Explicit non-overlapping charge set, including leases where applicable",
                          "positive charges"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-fixed_charge_coverage-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "interest_coverage",
                        "dimension_key": "repayment_capacity",
                        "label": "Interest coverage",
                        "description": "Interest coverage. EBIT divided by interest expense.",
                        "unit": "ratio",
                        "formula": "EBIT divided by interest expense",
                        "required_inputs": [
                          "Supported same-period EBIT and positive interest expense"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-interest_coverage-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "existing_debt_service",
                        "dimension_key": "repayment_capacity",
                        "label": "Existing debt service",
                        "description": "Existing debt service. Sum existing contractual principal, interest and mandatory debt fees over the assessment window.",
                        "unit": "currency",
                        "formula": "Sum existing contractual principal, interest and mandatory debt fees over the assessment window",
                        "required_inputs": [
                          "Complete schedule",
                          "variable and balloon assumptions explicit"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-existing_debt_service-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "proposed_debt_service",
                        "dimension_key": "repayment_capacity",
                        "label": "Proposed debt service",
                        "description": "Proposed debt service. Sum proposed contractual principal, interest and mandatory debt fees over the assessment window.",
                        "unit": "currency",
                        "formula": "Sum proposed contractual principal, interest and mandatory debt fees over the assessment window",
                        "required_inputs": [
                          "Exact proposed product terms, amount, rate, amortization, fees and timing"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-proposed_debt_service-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "total_debt_service",
                        "dimension_key": "repayment_capacity",
                        "label": "Total debt service",
                        "description": "Total debt service. Existing plus proposed debt service with duplicates removed.",
                        "unit": "currency",
                        "formula": "Existing plus proposed debt service with duplicates removed",
                        "required_inputs": [
                          "Comparable complete schedules and shared currency"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-total_debt_service-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "residual_cash_after_debt",
                        "dimension_key": "repayment_capacity",
                        "label": "Cash after debt service",
                        "description": "Cash after debt service. Eligible cash available for debt service minus total debt service.",
                        "unit": "currency",
                        "formula": "Eligible cash available for debt service minus total debt service",
                        "required_inputs": [
                          "Supported cash-flow bridge and complete obligations"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-residual_cash_after_debt-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "debt_service_headroom",
                        "dimension_key": "repayment_capacity",
                        "label": "Debt-service headroom",
                        "description": "Debt-service headroom. Eligible cash flow divided by institution DSCR requirement, minus total debt service.",
                        "unit": "currency",
                        "formula": "Eligible cash flow divided by institution DSCR requirement, minus total debt service",
                        "required_inputs": [
                          "Positive institution-approved DSCR threshold and complete components",
                          "analytical capacity, not an offer"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-debt_service_headroom-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "debt_payment_to_receipts",
                        "dimension_key": "repayment_capacity",
                        "label": "Debt payments to operating receipts",
                        "description": "Debt payments to operating receipts. Observed debt payments divided by operating cash receipts.",
                        "unit": "ratio",
                        "formula": "Observed debt payments divided by operating cash receipts",
                        "required_inputs": [
                          "Positive receipts",
                          "payments classified with evidence",
                          "not a substitute for DSCR"
                        ],
                        "eligibility": "Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "lender",
                          "application",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-debt_payment_to_receipts-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "top_customer_share",
                        "dimension_key": "concentration",
                        "label": "Largest customer share",
                        "description": "Largest customer share. Largest resolved customer revenue divided by covered customer revenue.",
                        "unit": "ratio",
                        "formula": "Largest resolved customer revenue divided by covered customer revenue",
                        "required_inputs": [
                          "Positive covered revenue and disclosed unknown-counterparty share"
                        ],
                        "eligibility": "Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "banking"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-top_customer_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "top_five_customer_share",
                        "dimension_key": "concentration",
                        "label": "Top five customer share",
                        "description": "Top five customer share. Revenue of five largest resolved customers divided by covered customer revenue.",
                        "unit": "ratio",
                        "formula": "Revenue of five largest resolved customers divided by covered customer revenue",
                        "required_inputs": [
                          "Positive covered revenue",
                          "fewer than five uses all resolved customers"
                        ],
                        "eligibility": "Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "banking"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-top_five_customer_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "top_supplier_share",
                        "dimension_key": "concentration",
                        "label": "Largest supplier share",
                        "description": "Largest supplier share. Largest resolved supplier spend divided by covered supplier spend.",
                        "unit": "ratio",
                        "formula": "Largest resolved supplier spend divided by covered supplier spend",
                        "required_inputs": [
                          "Positive supplier spend and explicit coverage"
                        ],
                        "eligibility": "Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "banking"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-top_supplier_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "top_channel_share",
                        "dimension_key": "concentration",
                        "label": "Largest sales channel share",
                        "description": "Largest sales channel share. Largest channel revenue divided by total covered channel revenue.",
                        "unit": "ratio",
                        "formula": "Largest channel revenue divided by total covered channel revenue",
                        "required_inputs": [
                          "Positive channel revenue",
                          "no duplicated cross-platform sales"
                        ],
                        "eligibility": "Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "banking"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-top_channel_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "customer_hhi",
                        "dimension_key": "concentration",
                        "label": "Customer concentration index",
                        "description": "Customer concentration index. Sum squared customer revenue fractions on a 0-to-1 scale.",
                        "unit": "ratio",
                        "formula": "Sum squared customer revenue fractions on a 0-to-1 scale",
                        "required_inputs": [
                          "Complete resolved customer allocation or explicit partial coverage",
                          "unknown is not one customer"
                        ],
                        "eligibility": "Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "banking"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-customer_hhi-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "income_source_hhi",
                        "dimension_key": "concentration",
                        "label": "Income-source concentration index",
                        "description": "Income-source concentration index. Sum squared verified income-source fractions on a 0-to-1 scale.",
                        "unit": "ratio",
                        "formula": "Sum squared verified income-source fractions on a 0-to-1 scale",
                        "required_inputs": [
                          "Positive verified income and resolved income streams"
                        ],
                        "eligibility": "Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "banking"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-income_source_hhi-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "collateral_ltv",
                        "dimension_key": "collateral",
                        "label": "Loan to collateral value",
                        "description": "Loan to collateral value. Assessed facility exposure divided by supported collateral valuation.",
                        "unit": "ratio",
                        "formula": "Assessed facility exposure divided by supported collateral valuation",
                        "required_inputs": [
                          "Positive eligible valuation with valuation date, currency and ownership"
                        ],
                        "eligibility": "Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "collateral",
                          "registry",
                          "lender",
                          "accounting",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-collateral_ltv-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "combined_ltv",
                        "dimension_key": "collateral",
                        "label": "Combined loan to value",
                        "description": "Combined loan to value. All known secured claims including proposed exposure divided by collateral value.",
                        "unit": "ratio",
                        "formula": "All known secured claims including proposed exposure divided by collateral value",
                        "required_inputs": [
                          "Positive valuation and complete supported lien/priority inventory"
                        ],
                        "eligibility": "Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "collateral",
                          "registry",
                          "lender",
                          "accounting",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-combined_ltv-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "collateral_coverage",
                        "dimension_key": "collateral",
                        "label": "Collateral coverage",
                        "description": "Collateral coverage. Eligible realizable collateral value after approved haircuts divided by secured exposure.",
                        "unit": "ratio",
                        "formula": "Eligible realizable collateral value after approved haircuts divided by secured exposure",
                        "required_inputs": [
                          "Positive exposure, documented haircut and enforceability assumptions"
                        ],
                        "eligibility": "Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "collateral",
                          "registry",
                          "lender",
                          "accounting",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-collateral_coverage-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "eligible_receivables",
                        "dimension_key": "collateral",
                        "label": "Eligible borrowing-base receivables",
                        "description": "Eligible borrowing-base receivables. Sum receivables meeting institution eligibility and concentration rules.",
                        "unit": "currency",
                        "formula": "Sum receivables meeting institution eligibility and concentration rules",
                        "required_inputs": [
                          "Versioned borrowing-base rules, aging, dilution and prior-pledge evidence"
                        ],
                        "eligibility": "Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "collateral",
                          "registry",
                          "lender",
                          "accounting",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-eligible_receivables-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "collateral_haircut_ratio",
                        "dimension_key": "collateral",
                        "label": "Collateral haircut",
                        "description": "Collateral haircut. Gross eligible valuation minus supported realizable valuation, divided by gross valuation.",
                        "unit": "ratio",
                        "formula": "Gross eligible valuation minus supported realizable valuation, divided by gross valuation",
                        "required_inputs": [
                          "Positive valuation and disclosed approved valuation/haircut method"
                        ],
                        "eligibility": "Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "collateral",
                          "registry",
                          "lender",
                          "accounting",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-collateral_haircut_ratio-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "reconciliation_break_share",
                        "dimension_key": "fraud_and_consistency",
                        "label": "Unreconciled value share",
                        "description": "Unreconciled value share. Unmatched absolute value divided by eligible source-side absolute value.",
                        "unit": "ratio",
                        "formula": "Unmatched absolute value divided by eligible source-side absolute value",
                        "required_inputs": [
                          "Comparable transaction populations, period, currency and matching tolerance"
                        ],
                        "eligibility": "Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "documents",
                          "banking",
                          "accounting",
                          "payments",
                          "identity"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-reconciliation_break_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "duplicate_transaction_share",
                        "dimension_key": "fraud_and_consistency",
                        "label": "Duplicate transaction share",
                        "description": "Duplicate transaction share. Confirmed duplicate records divided by examined records before deduplication.",
                        "unit": "ratio",
                        "formula": "Confirmed duplicate records divided by examined records before deduplication",
                        "required_inputs": [
                          "Nonzero examined records and documented duplicate criteria"
                        ],
                        "eligibility": "Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "documents",
                          "banking",
                          "accounting",
                          "payments",
                          "identity"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-duplicate_transaction_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "document_contradiction_count",
                        "dimension_key": "fraud_and_consistency",
                        "label": "Document contradictions",
                        "description": "Document contradictions. Count distinct supported inconsistencies between comparable document fields.",
                        "unit": "count",
                        "formula": "Count distinct supported inconsistencies between comparable document fields",
                        "required_inputs": [
                          "Document-level findings with page/field evidence",
                          "a signal is not proof of fraud"
                        ],
                        "eligibility": "Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "documents",
                          "banking",
                          "accounting",
                          "payments",
                          "identity"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-document_contradiction_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "identity_mismatch_count",
                        "dimension_key": "fraud_and_consistency",
                        "label": "Unresolved identity mismatches",
                        "description": "Unresolved identity mismatches. Count distinct unresolved mismatches across supported borrower identity attributes.",
                        "unit": "count",
                        "formula": "Count distinct unresolved mismatches across supported borrower identity attributes",
                        "required_inputs": [
                          "Comparable identity sources",
                          "absent attributes are missing, not mismatched"
                        ],
                        "eligibility": "Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "documents",
                          "banking",
                          "accounting",
                          "payments",
                          "identity"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-identity_mismatch_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "declared_income_gap_ratio",
                        "dimension_key": "fraud_and_consistency",
                        "label": "Declared-to-verified income gap",
                        "description": "Declared-to-verified income gap. Declared income minus verified comparable income, divided by verified income.",
                        "unit": "ratio",
                        "formula": "Declared income minus verified comparable income, divided by verified income",
                        "required_inputs": [
                          "Positive verified income",
                          "same gross/net basis, currency, scope and period"
                        ],
                        "eligibility": "Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "documents",
                          "banking",
                          "accounting",
                          "payments",
                          "identity"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-declared_income_gap_ratio-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "verified_gross_monthly_income",
                        "dimension_key": "income_and_affordability",
                        "label": "Verified gross monthly income",
                        "description": "Verified gross monthly income. Supported recurring pretax income normalized to one calendar month.",
                        "unit": "currency",
                        "formula": "Supported recurring pretax income normalized to one calendar month",
                        "required_inputs": [
                          "Payroll, tax or supported gross-income evidence",
                          "net deposits alone do not establish gross income"
                        ],
                        "eligibility": "Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "credit_bureau",
                          "application",
                          "documents",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-verified_gross_monthly_income-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "verified_net_monthly_income",
                        "dimension_key": "income_and_affordability",
                        "label": "Verified net monthly income",
                        "description": "Verified net monthly income. Supported recurring after-deduction income normalized to one calendar month.",
                        "unit": "currency",
                        "formula": "Supported recurring after-deduction income normalized to one calendar month",
                        "required_inputs": [
                          "Verified income streams, recurrence and calendar conversion",
                          "transfers excluded"
                        ],
                        "eligibility": "Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "credit_bureau",
                          "application",
                          "documents",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-verified_net_monthly_income-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "debt_to_income",
                        "dimension_key": "income_and_affordability",
                        "label": "Debt to income",
                        "description": "Debt to income. Existing plus proposed required monthly debt payments divided by verified gross monthly income.",
                        "unit": "ratio",
                        "formula": "Existing plus proposed required monthly debt payments divided by verified gross monthly income",
                        "required_inputs": [
                          "Positive verified gross income and complete monthly obligations",
                          "housing treatment explicit"
                        ],
                        "eligibility": "Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "credit_bureau",
                          "application",
                          "documents",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-debt_to_income-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "housing_to_income",
                        "dimension_key": "income_and_affordability",
                        "label": "Housing cost to income",
                        "description": "Housing cost to income. Required monthly housing cost divided by verified gross monthly income.",
                        "unit": "ratio",
                        "formula": "Required monthly housing cost divided by verified gross monthly income",
                        "required_inputs": [
                          "Positive gross income",
                          "rent/mortgage/tax/insurance/components explicit"
                        ],
                        "eligibility": "Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "credit_bureau",
                          "application",
                          "documents",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-housing_to_income-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "essential_monthly_spend",
                        "dimension_key": "income_and_affordability",
                        "label": "Essential monthly expenditure",
                        "description": "Essential monthly expenditure. Sum evidenced essential non-debt spending normalized to one month.",
                        "unit": "currency",
                        "formula": "Sum evidenced essential non-debt spending normalized to one month",
                        "required_inputs": [
                          "Versioned institution expense taxonomy",
                          "exclude sensitive merchant categories and avoid housing/debt duplication"
                        ],
                        "eligibility": "Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "credit_bureau",
                          "application",
                          "documents",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-essential_monthly_spend-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "residual_monthly_income",
                        "dimension_key": "income_and_affordability",
                        "label": "Residual monthly income",
                        "description": "Residual monthly income. Verified net income minus essential spending, housing and existing/proposed debt payments.",
                        "unit": "currency",
                        "formula": "Verified net income minus essential spending, housing and existing/proposed debt payments",
                        "required_inputs": [
                          "Complete non-overlapping monthly expense/obligation set"
                        ],
                        "eligibility": "Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "credit_bureau",
                          "application",
                          "documents",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-residual_monthly_income-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "payment_to_income",
                        "dimension_key": "income_and_affordability",
                        "label": "Proposed payment to income",
                        "description": "Proposed payment to income. Proposed required monthly payment divided by verified gross monthly income.",
                        "unit": "ratio",
                        "formula": "Proposed required monthly payment divided by verified gross monthly income",
                        "required_inputs": [
                          "Positive verified gross income and exact proposed terms"
                        ],
                        "eligibility": "Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "credit_bureau",
                          "application",
                          "documents",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-payment_to_income-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "liquid_reserve_months",
                        "dimension_key": "income_and_affordability",
                        "label": "Liquid reserve months",
                        "description": "Liquid reserve months. Unrestricted liquid funds divided by required monthly outgoings.",
                        "unit": "months",
                        "formula": "Unrestricted liquid funds divided by required monthly outgoings",
                        "required_inputs": [
                          "Positive complete essential/housing/debt outgoings",
                          "verified liquid balances"
                        ],
                        "eligibility": "Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "credit_bureau",
                          "application",
                          "documents",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-liquid_reserve_months-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "income_source_count",
                        "dimension_key": "income_stability",
                        "label": "Verified income sources",
                        "description": "Verified income sources. Count distinct supported recurring income streams.",
                        "unit": "count",
                        "formula": "Count distinct supported recurring income streams",
                        "required_inputs": [
                          "Deduplicated income identities and complete observed window"
                        ],
                        "eligibility": "Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-income_source_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "income_volatility",
                        "dimension_key": "income_stability",
                        "label": "Monthly income volatility",
                        "description": "Monthly income volatility. Population standard deviation of complete monthly verified income divided by mean.",
                        "unit": "ratio",
                        "formula": "Population standard deviation of complete monthly verified income divided by mean",
                        "required_inputs": [
                          "At least six complete months",
                          "positive mean",
                          "gross/net basis fixed"
                        ],
                        "eligibility": "Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-income_volatility-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "income_growth_yoy",
                        "dimension_key": "income_stability",
                        "label": "Income growth year over year",
                        "description": "Income growth year over year. Current verified income minus comparable prior-year income, divided by prior-year income.",
                        "unit": "ratio",
                        "formula": "Current verified income minus comparable prior-year income, divided by prior-year income",
                        "required_inputs": [
                          "Positive prior income",
                          "same income basis and comparable periods"
                        ],
                        "eligibility": "Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-income_growth_yoy-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "days_since_last_income",
                        "dimension_key": "income_stability",
                        "label": "Days since last income",
                        "description": "Days since last income. Days from most recent verified recurring income receipt to assessment date.",
                        "unit": "days",
                        "formula": "Days from most recent verified recurring income receipt to assessment date",
                        "required_inputs": [
                          "Supported receipt and assessment date",
                          "missing history is unavailable"
                        ],
                        "eligibility": "Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-days_since_last_income-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "income_interruption_days",
                        "dimension_key": "income_stability",
                        "label": "Income interruption",
                        "description": "Income interruption. Days past the next expected income date without a matched receipt.",
                        "unit": "days",
                        "formula": "Days past the next expected income date without a matched receipt",
                        "required_inputs": [
                          "Documented payment cadence, complete account coverage and nonnegative elapsed interval"
                        ],
                        "eligibility": "Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-income_interruption_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "income_continuity_share",
                        "dimension_key": "income_stability",
                        "label": "Income continuity",
                        "description": "Income continuity. Expected income periods with a supported receipt divided by elapsed expected periods.",
                        "unit": "ratio",
                        "formula": "Expected income periods with a supported receipt divided by elapsed expected periods",
                        "required_inputs": [
                          "Explicit expected cadence and nonzero elapsed periods",
                          "missing account coverage cannot count as interruption"
                        ],
                        "eligibility": "Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "payroll",
                          "banking",
                          "tax",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-income_continuity_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "nsf_event_count",
                        "dimension_key": "payment_behavior",
                        "label": "Insufficient-funds events",
                        "description": "Insufficient-funds events. Count distinct supported returned-payment events caused by insufficient funds.",
                        "unit": "count",
                        "formula": "Count distinct supported returned-payment events caused by insufficient funds",
                        "required_inputs": [
                          "Return reason evidence",
                          "deduplicate event and related fee records"
                        ],
                        "eligibility": "Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "credit_bureau",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-nsf_event_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "overdraft_days",
                        "dimension_key": "payment_behavior",
                        "label": "Overdraft days",
                        "description": "Overdraft days. Count covered days with a negative balance in any assessed account.",
                        "unit": "days",
                        "formula": "Count covered days with a negative balance in any assessed account",
                        "required_inputs": [
                          "Complete per-account daily balances",
                          "union calendar days, not sum across accounts"
                        ],
                        "eligibility": "Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "credit_bureau",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-overdraft_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "returned_payment_amount",
                        "dimension_key": "payment_behavior",
                        "label": "Returned payment amount",
                        "description": "Returned payment amount. Sum principal amounts of distinct returned payment events.",
                        "unit": "currency",
                        "formula": "Sum principal amounts of distinct returned payment events",
                        "required_inputs": [
                          "Return reason, direction and event linkage",
                          "exclude duplicate fees"
                        ],
                        "eligibility": "Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "credit_bureau",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-returned_payment_amount-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "delinquent_obligation_count",
                        "dimension_key": "payment_behavior",
                        "label": "Delinquent obligations",
                        "description": "Delinquent obligations. Count verified obligations past due at the assessment date.",
                        "unit": "count",
                        "formula": "Count verified obligations past due at the assessment date",
                        "required_inputs": [
                          "Due dates, payment allocation and complete supported debt schedule"
                        ],
                        "eligibility": "Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "credit_bureau",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-delinquent_obligation_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "maximum_days_past_due",
                        "dimension_key": "payment_behavior",
                        "label": "Maximum days past due",
                        "description": "Maximum days past due. Maximum verified days past due among assessed obligations.",
                        "unit": "days",
                        "formula": "Maximum verified days past due among assessed obligations",
                        "required_inputs": [
                          "Known contractual dues and allocated repayments",
                          "no delinquency inferred from missing feed"
                        ],
                        "eligibility": "Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "credit_bureau",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-maximum_days_past_due-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "on_time_payment_share",
                        "dimension_key": "payment_behavior",
                        "label": "On-time payment share",
                        "description": "On-time payment share. Obligations paid by contractual due date divided by elapsed eligible obligations.",
                        "unit": "ratio",
                        "formula": "Obligations paid by contractual due date divided by elapsed eligible obligations",
                        "required_inputs": [
                          "Complete due/payment pairs and positive eligible count"
                        ],
                        "eligibility": "Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "credit_bureau",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-on_time_payment_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "open_credit_obligation_count",
                        "dimension_key": "credit_history",
                        "label": "Open credit obligations",
                        "description": "Open credit obligations. Count resolved open obligations in entitled credit evidence.",
                        "unit": "count",
                        "formula": "Count resolved open obligations in entitled credit evidence",
                        "required_inputs": [
                          "Current permitted report or lender records",
                          "duplicate trades resolved"
                        ],
                        "eligibility": "Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-open_credit_obligation_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "bureau_utilization",
                        "dimension_key": "credit_history",
                        "label": "Reported revolving utilization",
                        "description": "Reported revolving utilization. Reported used revolving balances divided by reported limits.",
                        "unit": "ratio",
                        "formula": "Reported used revolving balances divided by reported limits",
                        "required_inputs": [
                          "Same-report-date positive limits",
                          "disclose bureau coverage and currency"
                        ],
                        "eligibility": "Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-bureau_utilization-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "recent_credit_inquiry_count",
                        "dimension_key": "credit_history",
                        "label": "Recent credit inquiries",
                        "description": "Recent credit inquiries. Count supported inquiry events in the requested window.",
                        "unit": "count",
                        "formula": "Count supported inquiry events in the requested window",
                        "required_inputs": [
                          "Entitled report",
                          "group duplicates/rate-shopping only under disclosed rules"
                        ],
                        "eligibility": "Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-recent_credit_inquiry_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "severe_delinquency_count",
                        "dimension_key": "credit_history",
                        "label": "Severe delinquency events",
                        "description": "Severe delinquency events. Count reported obligations meeting institution-defined severe-delinquency criteria.",
                        "unit": "count",
                        "formula": "Count reported obligations meeting institution-defined severe-delinquency criteria",
                        "required_inputs": [
                          "Current entitled report, criterion version and observation window"
                        ],
                        "eligibility": "Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-severe_delinquency_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "public_record_event_count",
                        "dimension_key": "credit_history",
                        "label": "Relevant public-record events",
                        "description": "Relevant public-record events. Count supported relevant insolvency/judgment events in entitled evidence.",
                        "unit": "count",
                        "formula": "Count supported relevant insolvency/judgment events in entitled evidence",
                        "required_inputs": [
                          "Verified matching, jurisdiction, record date and status",
                          "disputed records remain flagged"
                        ],
                        "eligibility": "Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "credit_bureau",
                          "lender",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-public_record_event_count-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "gross_sales",
                        "dimension_key": "commerce_performance",
                        "label": "Gross sales",
                        "description": "Gross sales. Sum eligible sales before refunds and discounts, excluding taxes.",
                        "unit": "currency",
                        "formula": "Sum eligible sales before refunds and discounts, excluding taxes",
                        "required_inputs": [
                          "Complete store/processor scope and consistent order versus settlement basis"
                        ],
                        "eligibility": "Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payments",
                          "commerce",
                          "subscriptions"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-gross_sales-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "net_sales",
                        "dimension_key": "commerce_performance",
                        "label": "Net sales",
                        "description": "Net sales. Gross sales minus discounts, cancellations and refunds.",
                        "unit": "currency",
                        "formula": "Gross sales minus discounts, cancellations and refunds",
                        "required_inputs": [
                          "Same sales cohort and recognition window",
                          "taxes excluded"
                        ],
                        "eligibility": "Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payments",
                          "commerce",
                          "subscriptions"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-net_sales-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "average_order_value",
                        "dimension_key": "commerce_performance",
                        "label": "Average order value",
                        "description": "Average order value. Net eligible order sales divided by completed noncancelled order count.",
                        "unit": "currency",
                        "formula": "Net eligible order sales divided by completed noncancelled order count",
                        "required_inputs": [
                          "Positive comparable order count",
                          "order-based rather than settlement data"
                        ],
                        "eligibility": "Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payments",
                          "commerce",
                          "subscriptions"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-average_order_value-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "repeat_customer_share",
                        "dimension_key": "commerce_performance",
                        "label": "Repeat customer share",
                        "description": "Repeat customer share. Customers with more than one completed purchase divided by purchasing customers.",
                        "unit": "ratio",
                        "formula": "Customers with more than one completed purchase divided by purchasing customers",
                        "required_inputs": [
                          "Stable authorized customer IDs and positive cohort count"
                        ],
                        "eligibility": "Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payments",
                          "commerce",
                          "subscriptions"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-repeat_customer_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "monthly_recurring_revenue",
                        "dimension_key": "commerce_performance",
                        "label": "Monthly recurring revenue",
                        "description": "Monthly recurring revenue. Contracted recurring subscription revenue normalized to a month.",
                        "unit": "currency",
                        "formula": "Contracted recurring subscription revenue normalized to a month",
                        "required_inputs": [
                          "Active recurring subscriptions, currency and documented usage/discount treatment"
                        ],
                        "eligibility": "Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payments",
                          "commerce",
                          "subscriptions"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-monthly_recurring_revenue-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "gross_revenue_retention",
                        "dimension_key": "commerce_performance",
                        "label": "Gross revenue retention",
                        "description": "Gross revenue retention. Opening recurring revenue minus churn and contraction divided by opening recurring revenue.",
                        "unit": "ratio",
                        "formula": "Opening recurring revenue minus churn and contraction divided by opening recurring revenue",
                        "required_inputs": [
                          "Positive opening cohort revenue",
                          "expansion excluded"
                        ],
                        "eligibility": "Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payments",
                          "commerce",
                          "subscriptions"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-gross_revenue_retention-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "net_revenue_retention",
                        "dimension_key": "commerce_performance",
                        "label": "Net revenue retention",
                        "description": "Net revenue retention. Opening recurring revenue minus churn/contraction plus expansion divided by opening recurring revenue.",
                        "unit": "ratio",
                        "formula": "Opening recurring revenue minus churn/contraction plus expansion divided by opening recurring revenue",
                        "required_inputs": [
                          "Same opening customer cohort and positive starting revenue"
                        ],
                        "eligibility": "Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payments",
                          "commerce",
                          "subscriptions"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-net_revenue_retention-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "settlement_delay_days",
                        "dimension_key": "commerce_performance",
                        "label": "Settlement delay",
                        "description": "Settlement delay. Amount-weighted days from captured sale to corresponding bank settlement.",
                        "unit": "days",
                        "formula": "Amount-weighted days from captured sale to corresponding bank settlement",
                        "required_inputs": [
                          "Matched eligible captures and settlements",
                          "positive settled value"
                        ],
                        "eligibility": "Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payments",
                          "commerce",
                          "subscriptions"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-settlement_delay_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "payroll_burden_share",
                        "dimension_key": "operating_resilience",
                        "label": "Payroll burden",
                        "description": "Payroll burden. Payroll cash cost including employer costs divided by verified revenue.",
                        "unit": "ratio",
                        "formula": "Payroll cash cost including employer costs divided by verified revenue",
                        "required_inputs": [
                          "Positive comparable revenue",
                          "supported payroll records"
                        ],
                        "eligibility": "Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payroll",
                          "inventory",
                          "accounting",
                          "commerce",
                          "logistics"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-payroll_burden_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "payroll_growth_yoy",
                        "dimension_key": "operating_resilience",
                        "label": "Payroll growth year over year",
                        "description": "Payroll growth year over year. Current payroll cost minus prior-year cost divided by prior-year cost.",
                        "unit": "ratio",
                        "formula": "Current payroll cost minus prior-year cost divided by prior-year cost",
                        "required_inputs": [
                          "Comparable periods",
                          "positive prior payroll",
                          "no employee protected attributes"
                        ],
                        "eligibility": "Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payroll",
                          "inventory",
                          "accounting",
                          "commerce",
                          "logistics"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-payroll_growth_yoy-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "inventory_stockout_share",
                        "dimension_key": "operating_resilience",
                        "label": "Inventory stockout share",
                        "description": "Inventory stockout share. Observed sellable item-days out of stock divided by observed eligible item-days.",
                        "unit": "ratio",
                        "formula": "Observed sellable item-days out of stock divided by observed eligible item-days",
                        "required_inputs": [
                          "Inventory history and eligible active-item scope",
                          "positive coverage"
                        ],
                        "eligibility": "Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payroll",
                          "inventory",
                          "accounting",
                          "commerce",
                          "logistics"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-inventory_stockout_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "fulfillment_on_time_share",
                        "dimension_key": "operating_resilience",
                        "label": "On-time fulfillment share",
                        "description": "On-time fulfillment share. Fulfilled eligible orders on/before promised date divided by eligible fulfilled orders.",
                        "unit": "ratio",
                        "formula": "Fulfilled eligible orders on/before promised date divided by eligible fulfilled orders",
                        "required_inputs": [
                          "Complete order and shipment dates",
                          "positive eligible count"
                        ],
                        "eligibility": "Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payroll",
                          "inventory",
                          "accounting",
                          "commerce",
                          "logistics"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-fulfillment_on_time_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "supplier_payment_delay_days",
                        "dimension_key": "operating_resilience",
                        "label": "Supplier payment delay",
                        "description": "Supplier payment delay. Amount-weighted days paid after contractual due date for settled trade bills.",
                        "unit": "days",
                        "formula": "Amount-weighted days paid after contractual due date for settled trade bills",
                        "required_inputs": [
                          "Matched bill/payment allocations",
                          "positive paid amounts",
                          "early payments recorded as zero delay"
                        ],
                        "eligibility": "Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "payroll",
                          "inventory",
                          "accounting",
                          "commerce",
                          "logistics"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-supplier_payment_delay_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "tax_liability",
                        "dimension_key": "tax_and_compliance",
                        "label": "Reported tax liability",
                        "description": "Reported tax liability. Sum supported outstanding assessed tax obligations at the assessment date.",
                        "unit": "currency",
                        "formula": "Sum supported outstanding assessed tax obligations at the assessment date",
                        "required_inputs": [
                          "Entitled tax/statement evidence with assessed versus estimated status"
                        ],
                        "eligibility": "Separate declared, filed, assessed and paid amounts and their periods. Registration or filing evidence is not a legal or tax-compliance certification.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "tax",
                          "accounting",
                          "registry",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-tax_liability-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "tax_overdue_amount",
                        "dimension_key": "tax_and_compliance",
                        "label": "Overdue tax amount",
                        "description": "Overdue tax amount. Sum supported unpaid tax obligations past their due dates.",
                        "unit": "currency",
                        "formula": "Sum supported unpaid tax obligations past their due dates",
                        "required_inputs": [
                          "Actual due dates and paid allocations",
                          "estimated taxes not treated as arrears"
                        ],
                        "eligibility": "Separate declared, filed, assessed and paid amounts and their periods. Registration or filing evidence is not a legal or tax-compliance certification.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "tax",
                          "accounting",
                          "registry",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-tax_overdue_amount-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "tax_payment_coverage",
                        "dimension_key": "tax_and_compliance",
                        "label": "Tax payment coverage",
                        "description": "Tax payment coverage. Payments allocated to due assessed taxes divided by due assessed taxes.",
                        "unit": "ratio",
                        "formula": "Payments allocated to due assessed taxes divided by due assessed taxes",
                        "required_inputs": [
                          "Positive due taxes and matched same-period payments"
                        ],
                        "eligibility": "Separate declared, filed, assessed and paid amounts and their periods. Registration or filing evidence is not a legal or tax-compliance certification.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "tax",
                          "accounting",
                          "registry",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-tax_payment_coverage-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "filing_coverage",
                        "dimension_key": "tax_and_compliance",
                        "label": "Filing evidence coverage",
                        "description": "Filing evidence coverage. Required filings with supported filing evidence divided by known required filings.",
                        "unit": "ratio",
                        "formula": "Required filings with supported filing evidence divided by known required filings",
                        "required_inputs": [
                          "Explicit jurisdiction and obligation inventory",
                          "positive required count",
                          "not a compliance opinion"
                        ],
                        "eligibility": "Separate declared, filed, assessed and paid amounts and their periods. Registration or filing evidence is not a legal or tax-compliance certification.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "tax",
                          "accounting",
                          "registry",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-filing_coverage-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "bank_accounting_match_share",
                        "dimension_key": "financial_reporting_quality",
                        "label": "Bank-to-books match share",
                        "description": "Bank-to-books match share. Matched bank-side absolute value divided by eligible bank-side absolute value.",
                        "unit": "ratio",
                        "formula": "Matched bank-side absolute value divided by eligible bank-side absolute value",
                        "required_inputs": [
                          "Same currency/period",
                          "positive eligible value",
                          "timing/FX/fees reconciled explicitly"
                        ],
                        "eligibility": "Measure statement coverage, closing lag, reconciliations and material adjustments; missing accounting records are not fabricated statements.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-bank_accounting_match_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "statement_balance_discrepancy",
                        "dimension_key": "financial_reporting_quality",
                        "label": "Balance-sheet discrepancy",
                        "description": "Balance-sheet discrepancy. Assets minus liabilities minus equity.",
                        "unit": "currency",
                        "formula": "Assets minus liabilities minus equity",
                        "required_inputs": [
                          "Same-date complete statement and currency"
                        ],
                        "eligibility": "Measure statement coverage, closing lag, reconciliations and material adjustments; missing accounting records are not fabricated statements.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-statement_balance_discrepancy-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "material_adjustment_share",
                        "dimension_key": "financial_reporting_quality",
                        "label": "Material accounting adjustments",
                        "description": "Material accounting adjustments. Absolute supported adjustment value divided by absolute pre-adjustment eligible activity.",
                        "unit": "ratio",
                        "formula": "Absolute supported adjustment value divided by absolute pre-adjustment eligible activity",
                        "required_inputs": [
                          "Versioned materiality rule",
                          "positive activity",
                          "journal reversals handled"
                        ],
                        "eligibility": "Measure statement coverage, closing lag, reconciliations and material adjustments; missing accounting records are not fabricated statements.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-material_adjustment_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "books_closing_lag_days",
                        "dimension_key": "financial_reporting_quality",
                        "label": "Books closing lag",
                        "description": "Books closing lag. Days between accounting period end and supported closing/finalization date.",
                        "unit": "days",
                        "formula": "Days between accounting period end and supported closing/finalization date",
                        "required_inputs": [
                          "Both dates",
                          "draft or unknown close state yields unavailable"
                        ],
                        "eligibility": "Measure statement coverage, closing lag, reconciliations and material adjustments; missing accounting records are not fabricated statements.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "accounting",
                          "banking",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-books_closing_lag_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "observed_account_coverage",
                        "dimension_key": "data_quality",
                        "label": "Declared-account coverage",
                        "description": "Declared-account coverage. Assessed declared accounts divided by known declared relevant accounts.",
                        "unit": "ratio",
                        "formula": "Assessed declared accounts divided by known declared relevant accounts",
                        "required_inputs": [
                          "Explicit declared account inventory and positive denominator",
                          "not all external accounts"
                        ],
                        "eligibility": "Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "identity",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-observed_account_coverage-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "covered_history_days",
                        "dimension_key": "data_quality",
                        "label": "Covered history",
                        "description": "Covered history. Count fully covered days across the required source/account set.",
                        "unit": "days",
                        "formula": "Count fully covered days across the required source/account set",
                        "required_inputs": [
                          "Required source roster and gap-aware observed intervals"
                        ],
                        "eligibility": "Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "identity",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-covered_history_days-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "stale_source_share",
                        "dimension_key": "data_quality",
                        "label": "Stale required sources",
                        "description": "Stale required sources. Required sources exceeding configured freshness tolerance divided by required sources.",
                        "unit": "ratio",
                        "formula": "Required sources exceeding configured freshness tolerance divided by required sources",
                        "required_inputs": [
                          "Nonzero required-source count",
                          "source-specific freshness policy"
                        ],
                        "eligibility": "Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "identity",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-stale_source_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "unclassified_transaction_share",
                        "dimension_key": "data_quality",
                        "label": "Unclassified transactions",
                        "description": "Unclassified transactions. Unclassified eligible transaction count divided by eligible transaction count.",
                        "unit": "ratio",
                        "formula": "Unclassified eligible transaction count divided by eligible transaction count",
                        "required_inputs": [
                          "Nonzero posted deduplicated population and versioned classification taxonomy"
                        ],
                        "eligibility": "Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "identity",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-unclassified_transaction_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "reconciled_value_share",
                        "dimension_key": "data_quality",
                        "label": "Reconciled financial value",
                        "description": "Reconciled financial value. Reconciled eligible absolute amount divided by eligible absolute amount.",
                        "unit": "ratio",
                        "formula": "Reconciled eligible absolute amount divided by eligible absolute amount",
                        "required_inputs": [
                          "Same comparable matching universe and positive denominator"
                        ],
                        "eligibility": "Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payments",
                          "commerce",
                          "payroll",
                          "identity",
                          "documents"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-reconciled_value_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "projected_minimum_cash",
                        "dimension_key": "forecasting_and_stress",
                        "label": "Projected minimum cash",
                        "description": "Projected minimum cash. Minimum closing cash in the defined forecast horizon.",
                        "unit": "currency",
                        "formula": "Minimum closing cash in the defined forecast horizon",
                        "required_inputs": [
                          "Versioned model or deterministic projection, explicit assumptions, horizon and complete starting balances"
                        ],
                        "eligibility": "Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "application",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-projected_minimum_cash-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "stress_dscr",
                        "dimension_key": "forecasting_and_stress",
                        "label": "Stressed debt-service coverage",
                        "description": "Stressed debt-service coverage. Scenario eligible cash flow divided by scenario existing/proposed debt service.",
                        "unit": "ratio",
                        "formula": "Scenario eligible cash flow divided by scenario existing/proposed debt service",
                        "required_inputs": [
                          "Explicit parameter shocks, transmission method and positive complete debt service"
                        ],
                        "eligibility": "Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "application",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-stress_dscr-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "stress_residual_income",
                        "dimension_key": "forecasting_and_stress",
                        "label": "Stressed residual income",
                        "description": "Stressed residual income. Scenario verified net income minus scenario non-overlapping essential/housing/debt outgoings.",
                        "unit": "currency",
                        "formula": "Scenario verified net income minus scenario non-overlapping essential/housing/debt outgoings",
                        "required_inputs": [
                          "Defined consumer scenario, exact payment terms and complete base components"
                        ],
                        "eligibility": "Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.",
                        "borrower_types": [
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "application",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-stress_residual_income-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "liquidity_shortfall",
                        "dimension_key": "forecasting_and_stress",
                        "label": "Projected liquidity shortfall",
                        "description": "Projected liquidity shortfall. Maximum of zero and required liquidity floor minus minimum projected cash.",
                        "unit": "currency",
                        "formula": "Maximum of zero and required liquidity floor minus minimum projected cash",
                        "required_inputs": [
                          "Institution-defined floor and supported forecast horizon",
                          "no default-probability interpretation"
                        ],
                        "eligibility": "Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "application",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-liquidity_shortfall-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "break_even_revenue_decline",
                        "dimension_key": "forecasting_and_stress",
                        "label": "Break-even revenue decline",
                        "description": "Break-even revenue decline. Smallest modeled proportional revenue reduction that breaches an explicit capacity threshold.",
                        "unit": "ratio",
                        "formula": "Smallest modeled proportional revenue reduction that breaches an explicit capacity threshold",
                        "required_inputs": [
                          "Documented cost elasticity, search bounds, institution threshold and scenario model",
                          "no universal shock"
                        ],
                        "eligibility": "Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "application",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-break_even_revenue_decline-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "related_party_receipts_share",
                        "dimension_key": "relationship_risk",
                        "label": "Related-party receipts share",
                        "description": "Related-party receipts share. Identified related-party operating receipts divided by operating receipts.",
                        "unit": "ratio",
                        "formula": "Identified related-party operating receipts divided by operating receipts",
                        "required_inputs": [
                          "Evidence-supported relationships and positive operating receipts"
                        ],
                        "eligibility": "Only borrower-authorized ownership and transaction relationships are in scope. Links require evidence and uncertainty; no cross-institution identity graph is exposed.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "registry",
                          "accounting",
                          "banking",
                          "application"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-related_party_receipts_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "circular_flow_amount",
                        "dimension_key": "relationship_risk",
                        "label": "Potential circular-flow amount",
                        "description": "Potential circular-flow amount. Sum uniquely attributed flow amount in evidence-supported return paths.",
                        "unit": "currency",
                        "formula": "Sum uniquely attributed flow amount in evidence-supported return paths",
                        "required_inputs": [
                          "Versioned temporal/value matching and unique path attribution",
                          "suspicion requires review"
                        ],
                        "eligibility": "Only borrower-authorized ownership and transaction relationships are in scope. Links require evidence and uncertainty; no cross-institution identity graph is exposed.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "registry",
                          "accounting",
                          "banking",
                          "application"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-circular_flow_amount-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "connected_counterparty_share",
                        "dimension_key": "relationship_risk",
                        "label": "Connected-counterparty exposure",
                        "description": "Connected-counterparty exposure. Exposure to evidence-linked counterparties divided by total covered counterparty exposure.",
                        "unit": "ratio",
                        "formula": "Exposure to evidence-linked counterparties divided by total covered counterparty exposure",
                        "required_inputs": [
                          "Authorized relationship graph, positive exposure and declared edge types"
                        ],
                        "eligibility": "Only borrower-authorized ownership and transaction relationships are in scope. Links require evidence and uncertainty; no cross-institution identity graph is exposed.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "registry",
                          "accounting",
                          "banking",
                          "application"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-connected_counterparty_share-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "revenue_change_from_baseline",
                        "dimension_key": "monitoring_change",
                        "label": "Revenue change from baseline",
                        "description": "Revenue change from baseline. Current comparable revenue minus baseline revenue divided by baseline revenue.",
                        "unit": "ratio",
                        "formula": "Current comparable revenue minus baseline revenue divided by baseline revenue",
                        "required_inputs": [
                          "Positive baseline revenue and compatible equal-length windows and calculation versions"
                        ],
                        "eligibility": "Compare compatible windows, scope, currencies and calculation versions. If comparability fails, expose the reason and no numeric delta.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-revenue_change_from_baseline-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "liquidity_change_from_baseline",
                        "dimension_key": "monitoring_change",
                        "label": "Liquidity change from baseline",
                        "description": "Liquidity change from baseline. Current unrestricted cash minus baseline unrestricted cash.",
                        "unit": "currency",
                        "formula": "Current unrestricted cash minus baseline unrestricted cash",
                        "required_inputs": [
                          "Compatible account scope, currency, basis and source quality"
                        ],
                        "eligibility": "Compare compatible windows, scope, currencies and calculation versions. If comparability fails, expose the reason and no numeric delta.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-liquidity_change_from_baseline-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "dscr_change_from_baseline",
                        "dimension_key": "monitoring_change",
                        "label": "DSCR change from baseline",
                        "description": "DSCR change from baseline. Current DSCR minus baseline DSCR.",
                        "unit": "ratio",
                        "formula": "Current DSCR minus baseline DSCR",
                        "required_inputs": [
                          "Comparable complete schedules, windows, methodology and lending scope"
                        ],
                        "eligibility": "Compare compatible windows, scope, currencies and calculation versions. If comparability fails, expose the reason and no numeric delta.",
                        "borrower_types": [
                          "business"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-dscr_change_from_baseline-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      },
                      {
                        "key": "obligation_growth_from_baseline",
                        "dimension_key": "monitoring_change",
                        "label": "Debt change from baseline",
                        "description": "Debt change from baseline. Current total debt minus baseline debt divided by baseline debt.",
                        "unit": "ratio",
                        "formula": "Current total debt minus baseline debt divided by baseline debt",
                        "required_inputs": [
                          "Positive baseline debt, compatible reporting scope and verified obligations"
                        ],
                        "eligibility": "Compare compatible windows, scope, currencies and calculation versions. If comparability fails, expose the reason and no numeric delta.",
                        "borrower_types": [
                          "business",
                          "person"
                        ],
                        "source_families": [
                          "banking",
                          "accounting",
                          "payroll",
                          "lender"
                        ],
                        "definition_version": "2026-11-06.1",
                        "calculation_version": "amlok-obligation_growth_from_baseline-1",
                        "window_rule": "Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.",
                        "unavailable_rule": "Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.",
                        "interpretation": "Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision."
                      }
                    ],
                    "integration_ids": [
                      "bank_synthetic"
                    ],
                    "operational_profile": {
                      "id": "development-example",
                      "version": "1",
                      "max_json_bytes": 1048576,
                      "max_upload_bytes": 20971520,
                      "max_document_pages": 200,
                      "allowed_document_mime_types": [
                        "application/pdf",
                        "image/png",
                        "image/jpeg",
                        "image/webp"
                      ],
                      "document_types": [
                        "financial_statement",
                        "bank_statement",
                        "identity_document",
                        "business_registration",
                        "tax_return",
                        "lending_terms",
                        "risk_policy",
                        "other"
                      ],
                      "session_ttl_seconds": 900,
                      "download_ttl_seconds": 300,
                      "snapshot_ttl_seconds": 3600,
                      "data_feed_retention_seconds": 2592000,
                      "event_retention_seconds": 2592000,
                      "export_retention_seconds": 86400,
                      "poll_min_interval_seconds": 5,
                      "poll_max_interval_seconds": 60,
                      "webhook_timeout_seconds": 10,
                      "webhook_max_body_bytes": 65536,
                      "webhook_rotation_overlap_seconds": 86400,
                      "rate_limits": [
                        {
                          "group": "reads",
                          "requests": 120,
                          "window_seconds": 60
                        },
                        {
                          "group": "commands",
                          "requests": 30,
                          "window_seconds": 60
                        },
                        {
                          "group": "uploads",
                          "requests": 10,
                          "window_seconds": 60
                        }
                      ]
                    },
                    "embedding_versions": [
                      {
                        "id": "embed_synthetic",
                        "name": "Synthetic borrower Hub",
                        "integration_ids": [
                          "bank_synthetic"
                        ],
                        "consent_purposes": [
                          "credit_assessment",
                          "continuous_monitoring"
                        ],
                        "allowed_embed_origins": [
                          "https://institution.example.com"
                        ],
                        "allowed_return_urls": [
                          "https://institution.example.com/connected"
                        ],
                        "hub_origin": "https://borrower.example.com"
                      }
                    ],
                    "sandbox": {
                      "scenario_ids": [
                        "happy_path",
                        "source_reauthorization",
                        "document_required",
                        "missing_financial_input",
                        "restricted_report",
                        "provider_failure",
                        "insufficient_credits",
                        "monitoring_alert",
                        "payment_return",
                        "export_failure"
                      ],
                      "test_integration_id": "bank_synthetic"
                    },
                    "risk_catalog_version": "2026-11-06.1"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Discover the approved schemas, products, integration IDs, embedding versions and monitoring cadences available to this API key. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read. operational_profile and embedding_versions are required discovery; sandbox is null in Live. Never infer production quotas from synthetic examples.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/configuration\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/configuration', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/configuration\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/request-receipts/lookup": {
      "get": {
        "operationId": "lookupRequestReceipt",
        "summary": "Lookup request receipt",
        "tags": [
          "Reliability"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "reliability:read"
        ],
        "parameters": [
          {
            "name": "operation_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "operation id"
          },
          {
            "name": "idempotency_key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "idempotency key"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/RequestReceipt"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "idempotency_key": "origination-synthetic-0042",
                    "operation_id": "createOrigination",
                    "resource_id": "orgn_synthetic",
                    "accepted_at": "2026-11-06T12:00:00Z",
                    "response_replay_available": false
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Recover the accepted resource using the original operation and idempotency key after a timeout or expired response cache. Do not submit accepted work as a new command. All IDs and cursors must belong to the authorized workspace and environment. Required scope: reliability:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/request-receipts/lookup?operation_id=createOrigination&idempotency_key=origination-synthetic-0042\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/request-receipts/lookup?operation_id=createOrigination&idempotency_key=origination-synthetic-0042', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/request-receipts/lookup?operation_id=createOrigination&idempotency_key=origination-synthetic-0042\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/healthcheck": {
      "get": {
        "operationId": "healthcheck",
        "summary": "Healthcheck",
        "tags": [
          "Reliability"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Healthcheck"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "status": "ok"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Healthcheck. All IDs and cursors must belong to the authorized workspace and environment. No API key is required.",
        "security": [],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/healthcheck\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/healthcheck', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/healthcheck\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/service-status": {
      "get": {
        "operationId": "serviceStatus",
        "summary": "Service status",
        "tags": [
          "Reliability"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/ServiceStatus"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "status": "operational",
                    "as_of": "2026-11-06T12:00:00Z"
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Service status. All IDs and cursors must belong to the authorized workspace and environment. No API key is required.",
        "security": [],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/service-status\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/service-status', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/service-status\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/data/records": {
      "get": {
        "operationId": "listDataRecords",
        "summary": "List data records",
        "tags": [
          "Data"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "data:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Borrower whose authorized data is read; required on every page."
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "connection id"
          },
          {
            "name": "integration_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "integration id"
          },
          {
            "name": "resource_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "resource type"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DataRecord"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/DataPage"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "dr_synthetic_v1",
                      "borrower_id": "bor_synthetic",
                      "connection_id": "con_synthetic",
                      "integration_id": "bank_synthetic",
                      "resource_type": "bank_transaction",
                      "resource_id": "txn_synthetic",
                      "record_version": 1,
                      "ingested_at": "2026-11-06T12:00:00Z",
                      "source_as_of": "2026-11-06T12:00:00Z",
                      "access": "available",
                      "access_reason": null,
                      "normalized": {
                        "id": "txn_synthetic",
                        "object": "bank_transaction",
                        "subject_id": "biz_synthetic",
                        "created_at": "2026-11-06T12:00:00Z",
                        "updated_at": "2026-11-06T12:00:00Z",
                        "observed_at": "2026-11-06T12:00:00Z",
                        "record_version": 1,
                        "source_refs": [],
                        "data_status": "partial",
                        "missing_fields": [],
                        "schema_version": "1.0.0",
                        "account_id": "acct_synthetic",
                        "direction": "inflow",
                        "status": "posted",
                        "amount": {
                          "amount": "1250.00",
                          "currency": "CAD"
                        },
                        "extensions": {
                          "synthetic_provider": {
                            "original_description": "SYNTHETIC CUSTOMER PAYMENT"
                          }
                        }
                      },
                      "source_payload": {
                        "status": "available",
                        "value": {
                          "description": "SYNTHETIC CUSTOMER PAYMENT",
                          "amount": "1250.00",
                          "currency": "CAD"
                        },
                        "reason": null
                      },
                      "document_ids": []
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "as_of": "2026-11-06T12:00:00Z",
                    "changes_cursor": "data_cursor_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read all authorized collected and enriched records for a borrower, independently of an origination or risk package. The first page creates a stable snapshot and an atomic changes_cursor. No page truncation; follow next_cursor until has_more is false. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/data/records?borrower_id=bor_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/data/records?borrower_id=bor_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/data/records?borrower_id=bor_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/data/records/{id}": {
      "get": {
        "operationId": "getDataRecord",
        "summary": "Get data record",
        "tags": [
          "Data"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "data:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DataRecord"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "dr_synthetic_v1",
                    "borrower_id": "bor_synthetic",
                    "connection_id": "con_synthetic",
                    "integration_id": "bank_synthetic",
                    "resource_type": "bank_transaction",
                    "resource_id": "txn_synthetic",
                    "record_version": 1,
                    "ingested_at": "2026-11-06T12:00:00Z",
                    "source_as_of": "2026-11-06T12:00:00Z",
                    "access": "available",
                    "access_reason": null,
                    "normalized": {
                      "id": "txn_synthetic",
                      "object": "bank_transaction",
                      "subject_id": "biz_synthetic",
                      "created_at": "2026-11-06T12:00:00Z",
                      "updated_at": "2026-11-06T12:00:00Z",
                      "observed_at": "2026-11-06T12:00:00Z",
                      "record_version": 1,
                      "source_refs": [],
                      "data_status": "partial",
                      "missing_fields": [],
                      "schema_version": "1.0.0",
                      "account_id": "acct_synthetic",
                      "direction": "inflow",
                      "status": "posted",
                      "amount": {
                        "amount": "1250.00",
                        "currency": "CAD"
                      },
                      "extensions": {
                        "synthetic_provider": {
                          "original_description": "SYNTHETIC CUSTOMER PAYMENT"
                        }
                      }
                    },
                    "source_payload": {
                      "status": "available",
                      "value": {
                        "description": "SYNTHETIC CUSTOMER PAYMENT",
                        "amount": "1250.00",
                        "currency": "CAD"
                      },
                      "reason": null
                    },
                    "document_ids": []
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read an exact immutable data-record version with normalized fields, enrichment fields, provenance, authorized source payload and file references. Never silently replace this version with newer data. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/data/records/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/data/records/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/data/records/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/data/changes": {
      "get": {
        "operationId": "listDataChanges",
        "summary": "List data changes",
        "tags": [
          "Data"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "data:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Use data snapshot changes_cursor, then change-feed resume_cursor. Bound filters and borrower are encoded in the cursor; no arbitrary time or filter reset."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DataChange"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/DataChangePage"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "change_synthetic",
                      "type": "upsert",
                      "occurred_at": "2026-11-06T12:00:00Z",
                      "record_id": "dr_synthetic_v1",
                      "borrower_id": "bor_synthetic",
                      "resource_id": "txn_synthetic",
                      "resource_type": "bank_transaction",
                      "record_version": 1,
                      "reason": null
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "resume_cursor": "resume_synthetic",
                    "resume_expires_at": "2026-12-06T12:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Resume from the changes_cursor returned by a completed data snapshot, then persist resume_cursor after applying each batch. Includes upserts, source removals and access changes; expired or mismatched cursors fail explicitly. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/data/changes?cursor=data_cursor_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/data/changes?cursor=data_cursor_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/data/changes?cursor=data_cursor_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/billing/transactions/{id}": {
      "get": {
        "operationId": "getBillingTransaction",
        "summary": "Get billing transaction",
        "tags": [
          "Billing"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "billing:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          },
          {
            "name": "snapshot_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "snapshot id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/BillingTransaction"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "txn_usage_synthetic",
                    "snapshot_id": "snap_synthetic",
                    "posted_at": "2026-11-06T12:00:00Z",
                    "amount": "-40.00",
                    "currency": "CAD",
                    "kind": "usage",
                    "product": "insights",
                    "description": "Synthetic underwriting usage, not a price quotation.",
                    "usage_id": "usage_synthetic",
                    "payment_id": null,
                    "borrower_id": "bor_synthetic",
                    "balance_after": "4935.00",
                    "sequence": 3,
                    "funding_type": null,
                    "record_version": 1,
                    "related_transaction_id": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Retrieve one immutable wallet movement, its historical balance and links to payment or product usage. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/billing/transactions/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/billing/transactions/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/billing/transactions/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/billing/payments": {
      "get": {
        "operationId": "listBillingPayments",
        "summary": "List billing payments",
        "tags": [
          "Billing"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "billing:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "processing",
                "succeeded",
                "failed",
                "cancelled",
                "partially_refunded",
                "refunded",
                "returned"
              ]
            },
            "description": "status"
          },
          {
            "name": "purpose",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "initial_funding",
                "renewal",
                "automatic_top_up",
                "manual_top_up"
              ]
            },
            "description": "purpose"
          },
          {
            "name": "created_from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "created from. UTC ranges are inclusive from and exclusive to; reject to <= from."
          },
          {
            "name": "created_to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "created to. UTC ranges are inclusive from and exclusive to; reject to <= from."
          },
          {
            "name": "snapshot_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "snapshot id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/BillingPayment"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "pay_synthetic",
                      "snapshot_id": "snap_synthetic",
                      "created_at": "2026-11-06T12:00:00Z",
                      "updated_at": "2026-11-06T12:00:00Z",
                      "status": "succeeded",
                      "purpose": "manual_top_up",
                      "amount": "5000.00",
                      "currency": "CAD",
                      "credited_amount": "5000.00",
                      "refunded_amount": "0.00",
                      "method": {
                        "type": "card",
                        "label": "Visa ending 4242"
                      },
                      "external_reference": "PAY-SYNTHETIC-0042",
                      "settled_at": "2026-11-06T12:00:00Z",
                      "failure_reason": null,
                      "transaction_ids": [
                        "txn_funding_synthetic"
                      ],
                      "record_version": 1
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read top-up and contract-funding payment attempts, including pending, failed, settled, returned and refunded states. Pending or failed payments are not spendable credits. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/billing/payments\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/billing/payments', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/billing/payments\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/billing/payments/{id}": {
      "get": {
        "operationId": "getBillingPayment",
        "summary": "Get billing payment",
        "tags": [
          "Billing"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "billing:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          },
          {
            "name": "snapshot_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "snapshot id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/BillingPayment"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "pay_synthetic",
                    "snapshot_id": "snap_synthetic",
                    "created_at": "2026-11-06T12:00:00Z",
                    "updated_at": "2026-11-06T12:00:00Z",
                    "status": "succeeded",
                    "purpose": "manual_top_up",
                    "amount": "5000.00",
                    "currency": "CAD",
                    "credited_amount": "5000.00",
                    "refunded_amount": "0.00",
                    "method": {
                      "type": "card",
                      "label": "Visa ending 4242"
                    },
                    "external_reference": "PAY-SYNTHETIC-0042",
                    "settled_at": "2026-11-06T12:00:00Z",
                    "failure_reason": null,
                    "transaction_ids": [
                      "txn_funding_synthetic"
                    ],
                    "record_version": 1
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Retrieve one payment and the wallet entries created by its settlement, return or refund. Uses the requested billing snapshot when supplied. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/billing/payments/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/billing/payments/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/billing/payments/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/billing/usage": {
      "get": {
        "operationId": "listBillingUsage",
        "summary": "List billing usage",
        "tags": [
          "Billing"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "billing:read"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          },
          {
            "name": "borrower_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "borrower id"
          },
          {
            "name": "product",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "insights",
                "signal"
              ]
            },
            "description": "product"
          },
          {
            "name": "origination_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "origination id"
          },
          {
            "name": "monitor_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "monitor id"
          },
          {
            "name": "charged_from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "charged from. UTC ranges are inclusive from and exclusive to; reject to <= from."
          },
          {
            "name": "charged_to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "charged to. UTC ranges are inclusive from and exclusive to; reject to <= from."
          },
          {
            "name": "snapshot_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "snapshot id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/BillingUsage"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "usage_synthetic",
                      "snapshot_id": "snap_synthetic",
                      "borrower_id": "bor_synthetic",
                      "product": "insights",
                      "origination_id": "orgn_synthetic",
                      "monitor_ids": [],
                      "risk_package_ids": [
                        "rp_synthetic"
                      ],
                      "period": {
                        "start": "2026-11-06T00:00:00Z",
                        "end": "2026-11-07T00:00:00Z"
                      },
                      "charged_at": "2026-11-06T12:00:00Z",
                      "tier": "standard",
                      "quantity": 1,
                      "unit_rate": "40.00",
                      "amount": "40.00",
                      "currency": "CAD",
                      "rate_card_id": "rate_synthetic",
                      "rate_version": "synthetic-1",
                      "transaction_id": "txn_usage_synthetic",
                      "workload": {
                        "bank_accounts": 1,
                        "business_systems": 2,
                        "records": 1500,
                        "record_counting_basis": "per_underwriting"
                      }
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Read what was charged, for which borrower and product, with historical rate, tier, workload and links to the wallet transaction and assessment. Signal combines a borrower across deals once per workspace/month. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/billing/usage\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/billing/usage', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/billing/usage\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/billing/usage/{id}": {
      "get": {
        "operationId": "getBillingUsage",
        "summary": "Get billing usage",
        "tags": [
          "Billing"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "billing:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          },
          {
            "name": "snapshot_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "snapshot id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/BillingUsage"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "usage_synthetic",
                    "snapshot_id": "snap_synthetic",
                    "borrower_id": "bor_synthetic",
                    "product": "insights",
                    "origination_id": "orgn_synthetic",
                    "monitor_ids": [],
                    "risk_package_ids": [
                      "rp_synthetic"
                    ],
                    "period": {
                      "start": "2026-11-06T00:00:00Z",
                      "end": "2026-11-07T00:00:00Z"
                    },
                    "charged_at": "2026-11-06T12:00:00Z",
                    "tier": "standard",
                    "quantity": 1,
                    "unit_rate": "40.00",
                    "amount": "40.00",
                    "currency": "CAD",
                    "rate_card_id": "rate_synthetic",
                    "rate_version": "synthetic-1",
                    "transaction_id": "txn_usage_synthetic",
                    "workload": {
                      "bank_accounts": 1,
                      "business_systems": 2,
                      "records": 1500,
                      "record_counting_basis": "per_underwriting"
                    }
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Retrieve the immutable calculation and product references explaining one usage charge. Historical rates are preserved; retries and included Signal reassessments are not duplicate charges. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/billing/usage/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/billing/usage/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/billing/usage/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/monitors/{id}/deal-snapshots": {
      "post": {
        "operationId": "createDealSnapshot",
        "summary": "Create deal snapshot",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:write"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Monitor ID whose lender input history is being accessed."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Stable for one intended command and its retries, scoped to key workspace/environment and operation. Mismatched body returns 409. Full response replay 24 hours; durable receipt remains."
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DealSnapshot"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "ds_synthetic",
                    "monitor_id": "mon_synthetic",
                    "borrower_id": "bor_synthetic",
                    "previous_snapshot_id": "ds_initial",
                    "sequence": 2,
                    "record_version": 1,
                    "effective_at": "2026-11-06T12:00:00Z",
                    "received_at": "2026-11-06T12:00:00Z",
                    "deal": {
                      "institution_reference": "LOAN-0042",
                      "funded_amount": {
                        "amount": "50000.00",
                        "currency": "CAD"
                      },
                      "outstanding_amount": {
                        "amount": "48000.00",
                        "currency": "CAD"
                      },
                      "funded_at": "2026-11-05T12:00:00Z",
                      "maturity_date": "2027-11-06",
                      "repayment_frequency": "monthly",
                      "terms_document_ids": []
                    },
                    "performance": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "idempotency_conflict",
                    "message": "Idempotency conflict.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "402": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "insufficient_credits",
                    "message": "Insufficient credits.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "422": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "413": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "payload_too_large",
                    "message": "payload too large",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          },
          "415": {
            "description": "Request exceeds the effective profile size limit or media type is unsupported. No command is accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unsupported_media_type",
                    "message": "unsupported media type",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            }
          }
        },
        "description": "Append a complete, immutable lender-supplied snapshot of a monitored deal. Compare previous_snapshot_id atomically; never edit old balances, evidence or assessments. Future Signal runs use the accepted snapshot. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write. Failed monitors also reject new inputs; correct the failure and enroll a new monitor. previous_snapshot_id is mandatory optimistic concurrency; 409 deal_snapshot_conflict when stale. Same idempotency key replays the accepted snapshot even if the monitor has since advanced. New snapshot affects evaluations starting after acceptance; no retroactive analysis or new Insights charge.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealSnapshotInput"
              },
              "example": {
                "previous_snapshot_id": "ds_initial",
                "effective_at": "2026-11-06T12:00:00Z",
                "deal": {
                  "institution_reference": "LOAN-0042",
                  "funded_amount": {
                    "amount": "50000.00",
                    "currency": "CAD"
                  },
                  "outstanding_amount": {
                    "amount": "48000.00",
                    "currency": "CAD"
                  },
                  "funded_at": "2026-11-05T12:00:00Z",
                  "maturity_date": "2027-11-06",
                  "repayment_frequency": "monthly",
                  "terms_document_ids": []
                },
                "performance": null
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request POST --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/monitors/record_synthetic/deal-snapshots\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json' \\\n  --header 'Idempotency-Key: createDealSnapshot-synthetic-0042' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"previous_snapshot_id\":\"ds_initial\",\"effective_at\":\"2026-11-06T12:00:00Z\",\"deal\":{\"institution_reference\":\"LOAN-0042\",\"funded_amount\":{\"amount\":\"50000.00\",\"currency\":\"CAD\"},\"outstanding_amount\":{\"amount\":\"48000.00\",\"currency\":\"CAD\"},\"funded_at\":\"2026-11-05T12:00:00Z\",\"maturity_date\":\"2027-11-06\",\"repayment_frequency\":\"monthly\",\"terms_document_ids\":[]},\"performance\":null}'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json', 'Idempotency-Key': 'createDealSnapshot-synthetic-0042', 'Content-Type': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('POST', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/monitors/record_synthetic/deal-snapshots', headers=headers, json={'previous_snapshot_id': 'ds_initial', 'effective_at': '2026-11-06T12:00:00Z', 'deal': {'institution_reference': 'LOAN-0042', 'funded_amount': {'amount': '50000.00', 'currency': 'CAD'}, 'outstanding_amount': {'amount': '48000.00', 'currency': 'CAD'}, 'funded_at': '2026-11-05T12:00:00Z', 'maturity_date': '2027-11-06', 'repayment_frequency': 'monthly', 'terms_document_ids': []}, 'performance': None}, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\", \"Idempotency-Key\": \"createDealSnapshot-synthetic-0042\", \"Content-Type\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/monitors/record_synthetic/deal-snapshots\", {\n  method: \"POST\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000),\n  body: JSON.stringify({\"previous_snapshot_id\": \"ds_initial\", \"effective_at\": \"2026-11-06T12:00:00Z\", \"deal\": {\"institution_reference\": \"LOAN-0042\", \"funded_amount\": {\"amount\": \"50000.00\", \"currency\": \"CAD\"}, \"outstanding_amount\": {\"amount\": \"48000.00\", \"currency\": \"CAD\"}, \"funded_at\": \"2026-11-05T12:00:00Z\", \"maturity_date\": \"2027-11-06\", \"repayment_frequency\": \"monthly\", \"terms_document_ids\": []}, \"performance\": null})\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      },
      "get": {
        "operationId": "listDealSnapshots",
        "summary": "List deal snapshots",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "Monitor ID whose lender input history is being accessed."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "cursor"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "limit"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DealSnapshot"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "page": {
                      "$ref": "#/components/schemas/Page"
                    }
                  },
                  "required": [
                    "data",
                    "meta",
                    "page"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": [
                    {
                      "id": "ds_synthetic",
                      "monitor_id": "mon_synthetic",
                      "borrower_id": "bor_synthetic",
                      "previous_snapshot_id": "ds_initial",
                      "sequence": 2,
                      "record_version": 1,
                      "effective_at": "2026-11-06T12:00:00Z",
                      "received_at": "2026-11-06T12:00:00Z",
                      "deal": {
                        "institution_reference": "LOAN-0042",
                        "funded_amount": {
                          "amount": "50000.00",
                          "currency": "CAD"
                        },
                        "outstanding_amount": {
                          "amount": "48000.00",
                          "currency": "CAD"
                        },
                        "funded_at": "2026-11-05T12:00:00Z",
                        "maturity_date": "2027-11-06",
                        "repayment_frequency": "monthly",
                        "terms_document_ids": []
                      },
                      "performance": null
                    }
                  ],
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  },
                  "page": {
                    "next_cursor": null,
                    "has_more": false,
                    "snapshot_id": "snap_synthetic",
                    "expires_at": "2026-11-06T13:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "List the immutable lender snapshots for this monitor, including its initial enrollment snapshot. Ordered by sequence ascending within a stable snapshot. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/monitors/record_synthetic/deal-snapshots\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/monitors/record_synthetic/deal-snapshots', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/monitors/record_synthetic/deal-snapshots\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    },
    "/v1/deal-snapshots/{id}": {
      "get": {
        "operationId": "getDealSnapshot",
        "summary": "Get deal snapshot",
        "tags": [
          "Signal"
        ],
        "x-availability": "published_contract",
        "x-required-scopes": [
          "signal:read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "description": "id"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DealSnapshot"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "data": {
                    "id": "ds_synthetic",
                    "monitor_id": "mon_synthetic",
                    "borrower_id": "bor_synthetic",
                    "previous_snapshot_id": "ds_initial",
                    "sequence": 2,
                    "record_version": 1,
                    "effective_at": "2026-11-06T12:00:00Z",
                    "received_at": "2026-11-06T12:00:00Z",
                    "deal": {
                      "institution_reference": "LOAN-0042",
                      "funded_amount": {
                        "amount": "50000.00",
                        "currency": "CAD"
                      },
                      "outstanding_amount": {
                        "amount": "48000.00",
                        "currency": "CAD"
                      },
                      "funded_at": "2026-11-05T12:00:00Z",
                      "maturity_date": "2027-11-06",
                      "repayment_frequency": "monthly",
                      "terms_document_ids": []
                    },
                    "performance": null
                  },
                  "meta": {
                    "request_id": "req_synthetic",
                    "schema_version": "1.0.0",
                    "environment": "sandbox"
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "400": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "validation_error",
                    "message": "Validation error.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "401": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "unauthenticated",
                    "message": "Unauthenticated.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "403": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "forbidden",
                    "message": "Forbidden.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "404": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "not_found",
                    "message": "Not found.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "409": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "invalid_state",
                    "message": "Invalid state.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "410": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "cursor_expired",
                    "message": "Cursor expired.",
                    "retryable": false,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "429": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "Rate limited.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          },
          "503": {
            "description": "Inspect structured error; retry only when retryable. 429 and 503 can include Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "$ref": "#/components/schemas/Error"
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "error": {
                    "code": "temporarily_unavailable",
                    "message": "Temporarily unavailable.",
                    "retryable": true,
                    "request_id": "req_synthetic",
                    "field": null
                  }
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Minimum delay in seconds before retry.",
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "X-Request-ID": {
                "schema": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Same request ID as meta.request_id or error.request_id."
              }
            }
          }
        },
        "description": "Retrieve the exact lender input version used by a monitoring run or risk package, including its effective time and previous version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl --request GET --fail-with-body --max-time 30 \\\n  \"${AMLOK_API_BASE_URL}/v1/deal-snapshots/record_synthetic\" \\\n  --header \"Authorization: Bearer ${AMLOK_API_KEY}\" \\\n  --header 'Accept: application/json'"
          },
          {
            "lang": "Python",
            "source": "import os\nimport requests\n\nheaders = {'Accept': 'application/json'}\nheaders[\"Authorization\"] = \"Bearer \" + os.environ[\"AMLOK_API_KEY\"]\nresponse = requests.request('GET', os.environ[\"AMLOK_API_BASE_URL\"] + '/v1/deal-snapshots/record_synthetic', headers=headers, timeout=30, allow_redirects=False)\nresponse.raise_for_status()\nprint(response.json())\n"
          },
          {
            "lang": "JavaScript",
            "source": "const headers = {\"Accept\": \"application/json\"};\nheaders.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;\nconst response = await fetch(process.env.AMLOK_API_BASE_URL + \"/v1/deal-snapshots/record_synthetic\", {\n  method: \"GET\", headers, redirect: \"error\", signal: AbortSignal.timeout(30000)\n});\nif (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);\nconsole.log(await response.json());\n"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Money": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Amount for Money. Constraints, requiredness and allowed values are defined by this schema."
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$",
            "description": "Currency for Money. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "additionalProperties": false
      },
      "Window": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Start for Window. Constraints, requiredness and allowed values are defined by this schema."
          },
          "end": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "End for Window. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "start",
          "end"
        ],
        "additionalProperties": false,
        "description": "UTC interval [start, end). The server rejects end <= start."
      },
      "VersionReference": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "version": {
            "type": "string",
            "minLength": 1,
            "description": "Version for VersionReference. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sha256": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[a-f0-9]{64}$",
            "description": "Sha256 for VersionReference. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "version",
          "sha256"
        ],
        "additionalProperties": false
      },
      "Meta": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "schema_version": {
            "type": "string",
            "minLength": 1,
            "description": "Schema version for Meta. Constraints, requiredness and allowed values are defined by this schema."
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ],
            "description": "Environment for Meta. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "request_id",
          "schema_version",
          "environment"
        ],
        "additionalProperties": false
      },
      "Page": {
        "type": "object",
        "properties": {
          "next_cursor": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Next cursor for Page. Constraints, requiredness and allowed values are defined by this schema."
          },
          "has_more": {
            "type": "boolean",
            "description": "Has more for Page. Constraints, requiredness and allowed values are defined by this schema."
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "expires_at": {
            "type": "string",
            "minLength": 1,
            "description": "Snapshot expiry. After expiry, respond 410 and restart with a new snapshot; never continue on a new snapshot silently.",
            "format": "date-time"
          }
        },
        "required": [
          "next_cursor",
          "has_more",
          "snapshot_id",
          "expires_at"
        ],
        "additionalProperties": false,
        "description": "Opaque cursor binds filters, authorization and a stable snapshot. Expired cursors return 410; never silently restart."
      },
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "validation_error",
              "unauthenticated",
              "forbidden",
              "not_found",
              "invalid_state",
              "idempotency_conflict",
              "insufficient_credits",
              "precondition_failed",
              "cursor_expired",
              "rate_limited",
              "temporarily_unavailable",
              "deal_snapshot_conflict",
              "payload_too_large",
              "unsupported_media_type",
              "document_rejected",
              "processing_failed",
              "session_expired",
              "consent_purpose_missing",
              "sandbox_only",
              "scenario_not_available",
              "idempotency_result_expired"
            ],
            "description": "Code for Error. Constraints, requiredness and allowed values are defined by this schema."
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "description": "Message for Error. Constraints, requiredness and allowed values are defined by this schema."
          },
          "retryable": {
            "type": "boolean",
            "description": "Retryable for Error. Constraints, requiredness and allowed values are defined by this schema."
          },
          "request_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "field": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Field for Error. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "code",
          "message",
          "retryable",
          "request_id",
          "field"
        ],
        "additionalProperties": false
      },
      "BusinessInput": {
        "type": "object",
        "properties": {
          "legal_name": {
            "type": "string",
            "minLength": 1,
            "description": "Client-asserted legal name."
          },
          "client_reference": {
            "type": "string",
            "minLength": 1,
            "description": "Optional caller-owned correlation identifier."
          },
          "registration_number": {
            "type": "string",
            "minLength": 1,
            "description": "Company or registry registration identifier."
          },
          "incorporation_country": {
            "type": "string",
            "minLength": 1,
            "description": "Country of formation."
          }
        },
        "required": [
          "legal_name"
        ],
        "additionalProperties": false
      },
      "PersonInput": {
        "type": "object",
        "properties": {
          "given_name": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized individual given name."
          },
          "family_name": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized individual family name."
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "description": "Contact email."
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "Contact telephone."
          },
          "residence_country": {
            "type": "string",
            "minLength": 1,
            "description": "Current country of residence when established."
          },
          "client_reference": {
            "type": "string",
            "minLength": 1,
            "description": "Institution borrower reference, unique by borrower type in the workspace/environment when supplied."
          }
        },
        "required": [
          "given_name",
          "family_name"
        ],
        "additionalProperties": false
      },
      "CreateBorrower": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "business"
              },
              "business": {
                "$ref": "#/components/schemas/BusinessInput"
              }
            },
            "required": [
              "type",
              "business"
            ],
            "additionalProperties": false,
            "title": "Business borrower"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "person"
              },
              "person": {
                "$ref": "#/components/schemas/PersonInput"
              }
            },
            "required": [
              "type",
              "person"
            ],
            "additionalProperties": false,
            "title": "Consumer borrower"
          }
        ]
      },
      "Borrower": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "type": {
            "type": "string",
            "enum": [
              "business",
              "person"
            ],
            "description": "Type for Borrower. Constraints, requiredness and allowed values are defined by this schema."
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the record was created."
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Client reference for Borrower. Constraints, requiredness and allowed values are defined by this schema."
          },
          "profile": {
            "$ref": "#/components/schemas/CreateBorrower",
            "description": "Profile for Borrower. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "type",
          "subject_id",
          "created_at",
          "client_reference",
          "profile"
        ],
        "additionalProperties": false
      },
      "CreateEmbeddingSession": {
        "type": "object",
        "properties": {
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "embedding_version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "purpose": {
            "type": "string",
            "enum": [
              "connect",
              "reauthorize"
            ],
            "description": "Purpose for CreateEmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "connection_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "return_url": {
            "type": "string",
            "minLength": 1,
            "description": "Must match an institution-approved return URL. No arbitrary redirects.",
            "format": "uri"
          },
          "origination_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "consent_purposes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "credit_assessment",
                "continuous_monitoring"
              ]
            },
            "minItems": 1,
            "uniqueItems": true,
            "description": "Explicit purposes presented for borrower authorization; must be a subset of the published Hub purposes. Credit assessment alone does not permit monitoring."
          },
          "embed_origin": {
            "type": "string",
            "minLength": 1,
            "description": "Exact HTTPS parent origin approved for this Hub. Omit for full-page redirects. No path, wildcard or opaque origin.",
            "format": "uri"
          },
          "monitor_id": {
            "type": "string",
            "minLength": 1,
            "description": "Monitor whose open requirement this session addresses. Mutually exclusive with origination_id."
          },
          "requirement_id": {
            "type": "string",
            "minLength": 1,
            "description": "Open requirement on origination_id or monitor_id; completion atomically associates the authorized connection with that resource."
          }
        },
        "required": [
          "borrower_id",
          "embedding_version_id",
          "purpose",
          "return_url",
          "consent_purposes"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "purpose": {
                  "const": "reauthorize"
                }
              }
            },
            "then": {
              "required": [
                "connection_id"
              ]
            },
            "else": {
              "not": {
                "required": [
                  "connection_id"
                ]
              }
            }
          },
          {
            "not": {
              "required": [
                "origination_id",
                "monitor_id"
              ]
            }
          },
          {
            "if": {
              "required": [
                "requirement_id"
              ]
            },
            "then": {
              "oneOf": [
                {
                  "required": [
                    "origination_id"
                  ]
                },
                {
                  "required": [
                    "monitor_id"
                  ]
                }
              ]
            }
          },
          {
            "if": {
              "anyOf": [
                {
                  "required": [
                    "origination_id"
                  ]
                },
                {
                  "required": [
                    "monitor_id"
                  ]
                }
              ]
            },
            "then": {
              "required": [
                "requirement_id"
              ]
            }
          }
        ],
        "description": "Launch an already published console-configured Hub for this borrower. Enabled integrations and categories come from embedding_version_id and cannot be overridden here. The backend verifies its own borrower association before creating a session; only the short-lived launch URL reaches the browser."
      },
      "EmbeddingSession": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "in_progress",
              "completed",
              "expired",
              "failed",
              "cancelled"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "launch_url": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Short-lived borrower session, never an institution API key.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "Short-lived borrower capability URL. Use in a permitted iframe or full-page navigation; never log or persist it as a reusable integration credential."
          },
          "expires_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC expiration; do not use this resource after this instant."
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Connection ids for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "consent_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Consent ids for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "embedding_version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Published Hub configuration version used by this session."
          },
          "purpose": {
            "type": "string",
            "enum": [
              "connect",
              "reauthorize"
            ],
            "description": "Purpose for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "origination_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Origination id for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "monitor_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier in the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Monitor id for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "requirement_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier in the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Requirement id for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "consent_purposes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "credit_assessment",
                "continuous_monitoring"
              ]
            },
            "minItems": 1,
            "uniqueItems": true,
            "description": "Consent purposes for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "embed_origin": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "Embed origin for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "return_url": {
            "type": "string",
            "minLength": 1,
            "format": "uri",
            "description": "Return url for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "failure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Error"
              },
              {
                "type": "null"
              }
            ],
            "description": "Failure for EmbeddingSession. Constraints, requiredness and allowed values are defined by this schema."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic version for this resource; compare with event.resource_version."
          }
        },
        "required": [
          "id",
          "borrower_id",
          "status",
          "launch_url",
          "expires_at",
          "connection_ids",
          "consent_ids",
          "embedding_version_id",
          "purpose",
          "origination_id",
          "monitor_id",
          "requirement_id",
          "consent_purposes",
          "embed_origin",
          "return_url",
          "failure",
          "record_version"
        ],
        "additionalProperties": false,
        "description": "Completion means the connection journey completed, not that source ingestion or underwriting completed. URLs are returned only to authorized callers; never send in events."
      },
      "Connection": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "integration_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "connected",
              "reauthorization_required",
              "revoked",
              "failed"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "consent_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "last_successful_sync_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Last successful sync at for Connection. Constraints, requiredness and allowed values are defined by this schema."
          },
          "source_as_of": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source as of for Connection. Constraints, requiredness and allowed values are defined by this schema."
          },
          "coverage": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Window"
              },
              {
                "type": "null"
              }
            ],
            "description": "Coverage for Connection. Constraints, requiredness and allowed values are defined by this schema."
          },
          "missing_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Missing reason for Connection. Constraints, requiredness and allowed values are defined by this schema."
          },
          "data_status": {
            "type": "string",
            "enum": [
              "not_started",
              "collecting",
              "ready",
              "partial",
              "failed"
            ],
            "description": "Availability of collected data, independent from provider authorization status. ready does not mean an underwriting has completed; inspect source_as_of and coverage."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic version for this resource; compare with event.resource_version."
          }
        },
        "required": [
          "id",
          "borrower_id",
          "integration_id",
          "status",
          "consent_id",
          "last_successful_sync_at",
          "source_as_of",
          "coverage",
          "missing_reason",
          "data_status",
          "record_version"
        ],
        "additionalProperties": false
      },
      "Consent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "revoked",
              "expired"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "purposes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "credit_assessment",
                "continuous_monitoring"
              ]
            },
            "minItems": 1,
            "uniqueItems": true,
            "description": "Purposes for Consent. Constraints, requiredness and allowed values are defined by this schema."
          },
          "captured_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Captured at for Consent. Constraints, requiredness and allowed values are defined by this schema."
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "UTC expiration; do not use this resource after this instant."
          },
          "revoked_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Revoked at for Consent. Constraints, requiredness and allowed values are defined by this schema."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonically increasing version of this resource. Compare with event.resource_version; snapshot reads preserve their historical version."
          }
        },
        "required": [
          "id",
          "borrower_id",
          "status",
          "purposes",
          "captured_at",
          "expires_at",
          "revoked_at",
          "record_version"
        ],
        "additionalProperties": false
      },
      "RevokeConsent": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 1,
            "description": "Reason for RevokeConsent. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "reason"
        ],
        "additionalProperties": false
      },
      "UploadDocument": {
        "type": "object",
        "properties": {
          "file": {
            "type": "string",
            "format": "binary",
            "description": "File for UploadDocument. Constraints, requiredness and allowed values are defined by this schema.",
            "contentMediaType": "application/octet-stream"
          },
          "context": {
            "type": "string",
            "enum": [
              "borrower",
              "lending_product",
              "risk_policy"
            ],
            "description": "Context for UploadDocument. Constraints, requiredness and allowed values are defined by this schema."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "document_type": {
            "type": "string",
            "minLength": 1,
            "description": "Document type for UploadDocument. Constraints, requiredness and allowed values are defined by this schema."
          },
          "origination_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "requirement_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          }
        },
        "required": [
          "file",
          "context",
          "document_type"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "context": {
                  "const": "borrower"
                }
              }
            },
            "then": {
              "required": [
                "borrower_id"
              ]
            },
            "else": {
              "not": {
                "anyOf": [
                  {
                    "required": [
                      "borrower_id"
                    ]
                  },
                  {
                    "required": [
                      "origination_id"
                    ]
                  },
                  {
                    "required": [
                      "requirement_id"
                    ]
                  }
                ]
              }
            }
          },
          {
            "if": {
              "required": [
                "requirement_id"
              ]
            },
            "then": {
              "required": [
                "origination_id"
              ]
            }
          }
        ],
        "description": "Upload once, then reference document ID in the origination. A later upload may include origination_id and an open requirement_id: borrower and requirement ownership are checked and association occurs atomically. Late attachment is accepted only while collecting/requires_action, otherwise 409. Never overwrite a file or change a completed assessment."
      },
      "Document": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "context": {
            "type": "string",
            "enum": [
              "borrower",
              "lending_product",
              "risk_policy"
            ],
            "description": "Context for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "borrower_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Borrower that owns this resource; must match the key workspace and environment."
          },
          "file_name": {
            "type": "string",
            "minLength": 1,
            "description": "File name for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "mime_type": {
            "type": "string",
            "minLength": 1,
            "description": "Mime type for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sha256": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[a-f0-9]{64}$",
            "description": "Sha256 for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "size_bytes": {
            "type": "integer",
            "minimum": 0,
            "description": "Size bytes for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "status": {
            "type": "string",
            "enum": [
              "processing",
              "available",
              "rejected",
              "restricted"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "restriction_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Restriction reason for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the record was created."
          },
          "document_type": {
            "type": "string",
            "minLength": 1,
            "description": "Document type for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "origination_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Origination id for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "requirement_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Requirement id for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "origin": {
            "type": "string",
            "enum": [
              "institution_upload",
              "borrower_upload",
              "integration",
              "amlok_generated"
            ],
            "description": "Origin for Document. Constraints, requiredness and allowed values are defined by this schema."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonically increasing version of this resource. Compare with event.resource_version; snapshot reads preserve their historical version."
          },
          "failure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Error"
              },
              {
                "type": "null"
              }
            ],
            "description": "Failure for Document. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "context",
          "borrower_id",
          "file_name",
          "mime_type",
          "sha256",
          "size_bytes",
          "status",
          "restriction_reason",
          "created_at",
          "document_type",
          "origination_id",
          "requirement_id",
          "origin",
          "record_version",
          "failure"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "const": "rejected"
                }
              }
            },
            "then": {
              "properties": {
                "failure": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "else": {
              "properties": {
                "failure": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "DownloadPurpose": {
        "type": "object",
        "properties": {
          "purpose": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized reason for accessing evidence or an export."
          }
        },
        "required": [
          "purpose"
        ],
        "additionalProperties": false
      },
      "DownloadLink": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "minLength": 1,
            "description": "Short-lived HTTPS URL. Never include credentials in logs.",
            "format": "uri"
          },
          "expires_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC expiration; do not use this resource after this instant."
          },
          "sha256": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[a-f0-9]{64}$",
            "description": "Sha256 for DownloadLink. Constraints, requiredness and allowed values are defined by this schema."
          },
          "mime_type": {
            "type": "string",
            "minLength": 1,
            "description": "Mime type for DownloadLink. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "url",
          "expires_at",
          "sha256",
          "mime_type"
        ],
        "additionalProperties": false
      },
      "LendingProductInput": {
        "type": "object",
        "properties": {
          "external_id": {
            "type": "string",
            "minLength": 1,
            "description": "External id for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "version": {
            "type": "string",
            "minLength": 1,
            "description": "Version for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "borrower_type": {
            "type": "string",
            "enum": [
              "business",
              "person"
            ],
            "description": "Borrower type for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "market": {
            "type": "string",
            "enum": [
              "US",
              "CA"
            ],
            "description": "Market for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$",
            "description": "Currency for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "product_type": {
            "type": "string",
            "enum": [
              "term_loan",
              "line_of_credit",
              "receivables_financing",
              "revenue_based_financing",
              "other"
            ],
            "description": "Product type for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "minimum_amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Minimum amount for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "maximum_amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Maximum amount for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "minimum_term_months": {
            "type": "integer",
            "minimum": 1,
            "description": "Minimum term months for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "maximum_term_months": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum term months for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "repayment_frequency": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "biweekly",
              "monthly",
              "at_maturity",
              "variable"
            ],
            "description": "Repayment frequency for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "pricing_schema_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "pricing": {
            "type": "object",
            "description": "Rate, fees, amortization and other product-specific economics, validated against the approved pricing_schema_id. All inputs needed for repayment analysis must be captured, not inferred."
          },
          "terms_document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Terms document ids for LendingProductInput. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "external_id",
          "version",
          "name",
          "borrower_type",
          "market",
          "currency",
          "product_type",
          "minimum_amount",
          "maximum_amount",
          "minimum_term_months",
          "maximum_term_months",
          "repayment_frequency",
          "pricing_schema_id",
          "pricing",
          "terms_document_ids"
        ],
        "additionalProperties": false,
        "description": "An immutable catalog version, not a merchant inventory product. Validate amount currencies, ordered bounds and approved terms before accepting. No modification or deletion of an accepted version."
      },
      "LendingProductVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the record was created."
          },
          "definition": {
            "$ref": "#/components/schemas/LendingProductInput",
            "description": "Definition for LendingProductVersion. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sha256": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[a-f0-9]{64}$",
            "description": "Sha256 for LendingProductVersion. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "created_at",
          "definition",
          "sha256"
        ],
        "additionalProperties": false
      },
      "PolicyRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier for this PolicyRule record."
          },
          "dimension_key": {
            "type": "string",
            "minLength": 1,
            "description": "Scalar metric key from configuration.dimensions, for example dscr or debt_to_income, never a dimension-family name. Unit, borrower applicability and calculation version must match approved configuration."
          },
          "operator": {
            "type": "string",
            "enum": [
              "gt",
              "gte",
              "lt",
              "lte",
              "eq"
            ],
            "description": "Operator for PolicyRule. Constraints, requiredness and allowed values are defined by this schema."
          },
          "threshold": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
            "description": "Threshold for PolicyRule. Constraints, requiredness and allowed values are defined by this schema."
          },
          "unit": {
            "type": "string",
            "minLength": 1,
            "description": "Unit for PolicyRule. Constraints, requiredness and allowed values are defined by this schema."
          },
          "on_missing": {
            "const": "review",
            "description": "On missing for PolicyRule. Constraints, requiredness and allowed values are defined by this schema."
          },
          "on_fail": {
            "type": "string",
            "enum": [
              "review",
              "outside_policy"
            ],
            "description": "On fail for PolicyRule. Constraints, requiredness and allowed values are defined by this schema."
          },
          "calculation_version": {
            "type": "string",
            "minLength": 1,
            "description": "Pin the calculation version returned by configuration.dimensions. A different method requires a new immutable risk-policy version."
          }
        },
        "required": [
          "id",
          "dimension_key",
          "operator",
          "threshold",
          "unit",
          "on_missing",
          "on_fail",
          "calculation_version"
        ],
        "additionalProperties": false,
        "description": "This rule language supports scalar comparisons only. Units and types must match the approved dimension. No executable code, arbitrary expressions or inferred pass for missing data."
      },
      "RiskPolicyInput": {
        "type": "object",
        "properties": {
          "external_id": {
            "type": "string",
            "minLength": 1,
            "description": "External id for RiskPolicyInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "version": {
            "type": "string",
            "minLength": 1,
            "description": "Version for RiskPolicyInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name for RiskPolicyInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "borrower_type": {
            "type": "string",
            "enum": [
              "business",
              "person"
            ],
            "description": "Borrower type for RiskPolicyInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "market": {
            "type": "string",
            "enum": [
              "US",
              "CA"
            ],
            "description": "Market for RiskPolicyInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyRule"
            },
            "minItems": 1,
            "description": "Rules for RiskPolicyInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "policy_document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Policy document ids for RiskPolicyInput. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "external_id",
          "version",
          "name",
          "borrower_type",
          "market",
          "rules",
          "policy_document_ids"
        ],
        "additionalProperties": false,
        "description": "Validated against authorized dimensions and the institution-approved policy before use. Documents provide context; they are not automatically executable policies."
      },
      "RiskPolicyVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the record was created."
          },
          "definition": {
            "$ref": "#/components/schemas/RiskPolicyInput",
            "description": "Definition for RiskPolicyVersion. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sha256": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[a-f0-9]{64}$",
            "description": "Sha256 for RiskPolicyVersion. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "created_at",
          "definition",
          "sha256"
        ],
        "additionalProperties": false
      },
      "ApplicationInput": {
        "type": "object",
        "properties": {
          "institution_reference": {
            "type": "string",
            "minLength": 1,
            "description": "Institution reference for ApplicationInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "requested_amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Requested amount for ApplicationInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "requested_term_months": {
            "type": "integer",
            "minimum": 1,
            "description": "Requested term months for ApplicationInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "purpose": {
            "type": "string",
            "minLength": 1,
            "description": "Purpose for ApplicationInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "declared_data": {
            "type": "object",
            "description": "Institution-defined application fields validated against application_schema_id; additionalProperties here does not bypass that schema."
          },
          "application_schema_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "related_borrower_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Related borrower ids for ApplicationInput. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "institution_reference",
          "requested_amount",
          "requested_term_months",
          "purpose",
          "application_schema_id",
          "declared_data"
        ],
        "additionalProperties": false
      },
      "CreateOrigination": {
        "type": "object",
        "properties": {
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "application": {
            "$ref": "#/components/schemas/ApplicationInput",
            "description": "Application for CreateOrigination. Constraints, requiredness and allowed values are defined by this schema."
          },
          "lending_product_version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "risk_policy_version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Connection ids for CreateOrigination. Constraints, requiredness and allowed values are defined by this schema."
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Document ids for CreateOrigination. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "borrower_id",
          "application",
          "lending_product_version_id",
          "risk_policy_version_id",
          "connection_ids",
          "document_ids"
        ],
        "additionalProperties": false,
        "description": "AMLOK resolves authorized source data, coverage, verification and calculations. Clients do not provide workflow IDs, manifests or processing_context. Validate product, policy, currency, market and borrower-type compatibility."
      },
      "Requirement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier in the authorized workspace and environment."
          },
          "code": {
            "type": "string",
            "enum": [
              "source_missing",
              "source_reauthorization_required",
              "document_required",
              "contact_support"
            ],
            "description": "Code for Requirement. Constraints, requiredness and allowed values are defined by this schema."
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "description": "Human-readable explanation; automate using code/action and typed fields."
          },
          "action": {
            "type": "string",
            "enum": [
              "connect_source",
              "reauthorize_source",
              "upload_document",
              "contact_support"
            ],
            "description": "Action for Requirement. Constraints, requiredness and allowed values are defined by this schema."
          },
          "connection_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier in the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Connection id for Requirement. Constraints, requiredness and allowed values are defined by this schema."
          },
          "integration_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier in the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Integration id for Requirement. Constraints, requiredness and allowed values are defined by this schema."
          },
          "document_type": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Document type for Requirement. Constraints, requiredness and allowed values are defined by this schema."
          },
          "accepted_mime_types": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Accepted mime types for Requirement. Constraints, requiredness and allowed values are defined by this schema."
          },
          "consent_purposes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "credit_assessment",
                "continuous_monitoring"
              ]
            },
            "uniqueItems": true,
            "description": "Consent purposes for Requirement. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "code",
          "message",
          "action",
          "connection_id",
          "integration_id",
          "document_type",
          "accepted_mime_types",
          "consent_purposes"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "action": {
                  "const": "reauthorize_source"
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "const": "source_reauthorization_required"
                },
                "connection_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque identifier in the authorized workspace and environment."
                },
                "consent_purposes": {
                  "minItems": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "action": {
                  "const": "connect_source"
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "const": "source_missing"
                },
                "integration_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque identifier in the authorized workspace and environment."
                },
                "consent_purposes": {
                  "minItems": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "action": {
                  "const": "upload_document"
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "const": "document_required"
                },
                "document_type": {
                  "type": "string",
                  "minLength": 1
                },
                "accepted_mime_types": {
                  "minItems": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "action": {
                  "const": "contact_support"
                }
              }
            },
            "then": {
              "properties": {
                "code": {
                  "const": "contact_support"
                }
              }
            }
          }
        ]
      },
      "Origination": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "institution_reference": {
            "type": "string",
            "minLength": 1,
            "description": "Institution reference for Origination. Constraints, requiredness and allowed values are defined by this schema."
          },
          "status": {
            "type": "string",
            "enum": [
              "accepted",
              "collecting",
              "requires_action",
              "processing",
              "waiting_for_credits",
              "completed",
              "failed",
              "cancelled"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the record was created."
          },
          "updated_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time this resource last changed."
          },
          "requirements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Requirement"
            },
            "description": "Requirements for Origination. Constraints, requiredness and allowed values are defined by this schema."
          },
          "risk_package_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Risk package id for Origination. Constraints, requiredness and allowed values are defined by this schema."
          },
          "failure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Error"
              },
              {
                "type": "null"
              }
            ],
            "description": "Failure for Origination. Constraints, requiredness and allowed values are defined by this schema."
          },
          "submitted_request": {
            "$ref": "#/components/schemas/CreateOrigination",
            "description": "Submitted request for Origination. Constraints, requiredness and allowed values are defined by this schema."
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque ID within the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Current authorized document associations. Includes submitted documents and later documents accepted against open requirements. A completed assessment freezes its own document and evidence references."
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier in the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Current effective connections, including resolved requirements. submitted_request remains immutable."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic version for this resource; compare with event.resource_version."
          }
        },
        "required": [
          "id",
          "borrower_id",
          "institution_reference",
          "status",
          "created_at",
          "updated_at",
          "requirements",
          "risk_package_id",
          "failure",
          "submitted_request",
          "document_ids",
          "connection_ids",
          "record_version"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "const": "completed"
                }
              }
            },
            "then": {
              "properties": {
                "risk_package_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque identifier, authorized within the API key workspace and environment."
                }
              }
            },
            "else": {
              "properties": {
                "risk_package_id": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "requires_action"
                }
              }
            },
            "then": {
              "properties": {
                "requirements": {
                  "minItems": 1
                }
              }
            },
            "else": {
              "properties": {
                "requirements": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "failed"
                }
              }
            },
            "then": {
              "properties": {
                "failure": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "else": {
              "properties": {
                "failure": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "Metric": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "enum": [
              "business_age_months",
              "verified_account_owner_ratio",
              "ownership_disclosed_ratio",
              "related_party_balance_share",
              "supported_guarantee_coverage",
              "total_inflows",
              "total_outflows",
              "net_cash_flow",
              "operating_cash_inflows",
              "operating_cash_outflows",
              "operating_net_cash_flow",
              "internal_transfer_inflows",
              "financing_inflows",
              "positive_cashflow_month_share",
              "cashflow_volatility",
              "cashflow_change_90d",
              "unrestricted_cash",
              "average_daily_balance",
              "minimum_daily_balance",
              "negative_balance_days",
              "cash_buffer_days",
              "current_ratio",
              "quick_ratio",
              "cash_ratio",
              "verified_revenue",
              "recurring_revenue_share",
              "revenue_growth_yoy",
              "revenue_growth_90d",
              "revenue_volatility",
              "refund_amount_share",
              "chargeback_amount_share",
              "revenue_cash_realization",
              "unverified_receipts_share",
              "nonrecurring_revenue_share",
              "gross_profit",
              "gross_margin",
              "ebitda",
              "ebitda_margin",
              "operating_profit",
              "operating_margin",
              "net_profit",
              "net_margin",
              "free_cash_flow",
              "return_on_assets",
              "net_working_capital",
              "receivables_days",
              "payables_days",
              "inventory_days",
              "cash_conversion_cycle",
              "ar_overdue_share",
              "ar_90_plus_share",
              "ap_overdue_share",
              "inventory_turnover",
              "total_debt",
              "net_debt",
              "debt_to_assets",
              "debt_to_equity",
              "net_debt_to_ebitda",
              "credit_utilization",
              "short_term_debt_share",
              "debt_maturing_90d",
              "dscr",
              "fixed_charge_coverage",
              "interest_coverage",
              "existing_debt_service",
              "proposed_debt_service",
              "total_debt_service",
              "residual_cash_after_debt",
              "debt_service_headroom",
              "debt_payment_to_receipts",
              "top_customer_share",
              "top_five_customer_share",
              "top_supplier_share",
              "top_channel_share",
              "customer_hhi",
              "income_source_hhi",
              "collateral_ltv",
              "combined_ltv",
              "collateral_coverage",
              "eligible_receivables",
              "collateral_haircut_ratio",
              "reconciliation_break_share",
              "duplicate_transaction_share",
              "document_contradiction_count",
              "identity_mismatch_count",
              "declared_income_gap_ratio",
              "verified_gross_monthly_income",
              "verified_net_monthly_income",
              "debt_to_income",
              "housing_to_income",
              "essential_monthly_spend",
              "residual_monthly_income",
              "payment_to_income",
              "liquid_reserve_months",
              "income_source_count",
              "income_volatility",
              "income_growth_yoy",
              "days_since_last_income",
              "income_interruption_days",
              "income_continuity_share",
              "nsf_event_count",
              "overdraft_days",
              "returned_payment_amount",
              "delinquent_obligation_count",
              "maximum_days_past_due",
              "on_time_payment_share",
              "open_credit_obligation_count",
              "bureau_utilization",
              "recent_credit_inquiry_count",
              "severe_delinquency_count",
              "public_record_event_count",
              "gross_sales",
              "net_sales",
              "average_order_value",
              "repeat_customer_share",
              "monthly_recurring_revenue",
              "gross_revenue_retention",
              "net_revenue_retention",
              "settlement_delay_days",
              "payroll_burden_share",
              "payroll_growth_yoy",
              "inventory_stockout_share",
              "fulfillment_on_time_share",
              "supplier_payment_delay_days",
              "tax_liability",
              "tax_overdue_amount",
              "tax_payment_coverage",
              "filing_coverage",
              "bank_accounting_match_share",
              "statement_balance_discrepancy",
              "material_adjustment_share",
              "books_closing_lag_days",
              "observed_account_coverage",
              "covered_history_days",
              "stale_source_share",
              "unclassified_transaction_share",
              "reconciled_value_share",
              "projected_minimum_cash",
              "stress_dscr",
              "stress_residual_income",
              "liquidity_shortfall",
              "break_even_revenue_decline",
              "related_party_receipts_share",
              "circular_flow_amount",
              "connected_counterparty_share",
              "revenue_change_from_baseline",
              "liquidity_change_from_baseline",
              "dscr_change_from_baseline",
              "obligation_growth_from_baseline"
            ]
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "description": "Label for Metric. Constraints, requiredness and allowed values are defined by this schema."
          },
          "status": {
            "type": "string",
            "enum": [
              "available",
              "unavailable",
              "not_applicable"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact decimal string. Ratio 0.25 means 25%; missing is null, never zero. No arbitrary composite credit score."
          },
          "unit": {
            "type": "string",
            "minLength": 1,
            "description": "Unit for Metric. Constraints, requiredness and allowed values are defined by this schema."
          },
          "window": {
            "$ref": "#/components/schemas/Window",
            "description": "Window for Metric. Constraints, requiredness and allowed values are defined by this schema."
          },
          "calculation_version": {
            "type": "string",
            "minLength": 1,
            "description": "Calculation version for Metric. Constraints, requiredness and allowed values are defined by this schema."
          },
          "missing_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Missing reason for Metric. Constraints, requiredness and allowed values are defined by this schema."
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Evidence ids for Metric. Constraints, requiredness and allowed values are defined by this schema."
          },
          "analysis_basis": {
            "type": "string",
            "enum": [
              "historical",
              "pro_forma",
              "scenario"
            ]
          },
          "assumptions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "definition_version": {
            "const": "2026-11-06.1"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{3}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "basis": {
            "type": "string",
            "enum": [
              "observed",
              "declared",
              "derived",
              "estimated"
            ]
          },
          "reason_code": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "missing_source",
                  "insufficient_history",
                  "stale_source",
                  "incomplete_coverage",
                  "restricted_source",
                  "invalid_denominator",
                  "conflicting_evidence",
                  "unsupported_scope",
                  "not_applicable",
                  "not_evaluated",
                  "no_comparable_baseline",
                  "model_not_eligible"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalculationInput"
            }
          },
          "coverage": {
            "type": "object",
            "properties": {
              "observed_days": {
                "type": "integer",
                "minimum": 0
              },
              "expected_days": {
                "type": "integer",
                "minimum": 0
              },
              "scope_note": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "observed_days",
              "expected_days",
              "scope_note"
            ],
            "additionalProperties": false
          },
          "series": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetricObservation"
            },
            "description": "Ordered historical observations using this metric definition, unit, currency and scope. Missing periods are explicit unavailable observations; no interpolation without an estimated basis."
          }
        },
        "required": [
          "key",
          "label",
          "status",
          "value",
          "unit",
          "window",
          "calculation_version",
          "missing_reason",
          "evidence_ids",
          "analysis_basis",
          "assumptions",
          "definition_version",
          "currency",
          "as_of",
          "basis",
          "reason_code",
          "inputs",
          "coverage",
          "series"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "missing_reason": {
                  "type": "null"
                }
              }
            },
            "else": {
              "properties": {
                "value": {
                  "type": "null"
                },
                "missing_reason": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "analysis_basis": {
                  "enum": [
                    "pro_forma",
                    "scenario"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "assumptions": {
                  "minItems": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "unit": {
                  "const": "currency"
                }
              }
            },
            "then": {
              "properties": {
                "currency": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^[A-Z]{3}$"
                }
              }
            },
            "else": {
              "properties": {
                "currency": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason_code": {
                  "type": "null"
                },
                "inputs": {
                  "minItems": 1
                },
                "evidence_ids": {
                  "minItems": 1
                }
              }
            },
            "else": {
              "properties": {
                "reason_code": {
                  "type": "string",
                  "enum": [
                    "missing_source",
                    "insufficient_history",
                    "stale_source",
                    "incomplete_coverage",
                    "restricted_source",
                    "invalid_denominator",
                    "conflicting_evidence",
                    "unsupported_scope",
                    "not_applicable",
                    "not_evaluated",
                    "no_comparable_baseline",
                    "model_not_eligible"
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "business_age_months"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "months"
                },
                "calculation_version": {
                  "const": "amlok-business_age_months-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "verified_account_owner_ratio"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-verified_account_owner_ratio-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "ownership_disclosed_ratio"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-ownership_disclosed_ratio-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "related_party_balance_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-related_party_balance_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "supported_guarantee_coverage"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-supported_guarantee_coverage-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "total_inflows"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-total_inflows-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "total_outflows"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-total_outflows-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "net_cash_flow"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-net_cash_flow-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "operating_cash_inflows"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-operating_cash_inflows-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "operating_cash_outflows"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-operating_cash_outflows-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "operating_net_cash_flow"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-operating_net_cash_flow-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "internal_transfer_inflows"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-internal_transfer_inflows-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "financing_inflows"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-financing_inflows-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "positive_cashflow_month_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-positive_cashflow_month_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "cashflow_volatility"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-cashflow_volatility-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "cashflow_change_90d"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-cashflow_change_90d-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "unrestricted_cash"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-unrestricted_cash-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "average_daily_balance"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-average_daily_balance-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "minimum_daily_balance"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-minimum_daily_balance-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "negative_balance_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-negative_balance_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "cash_buffer_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-cash_buffer_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "current_ratio"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-current_ratio-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "quick_ratio"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-quick_ratio-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "cash_ratio"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-cash_ratio-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "verified_revenue"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-verified_revenue-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "recurring_revenue_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-recurring_revenue_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "revenue_growth_yoy"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-revenue_growth_yoy-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "revenue_growth_90d"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-revenue_growth_90d-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "revenue_volatility"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-revenue_volatility-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "refund_amount_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-refund_amount_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "chargeback_amount_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-chargeback_amount_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "revenue_cash_realization"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-revenue_cash_realization-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "unverified_receipts_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-unverified_receipts_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "nonrecurring_revenue_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-nonrecurring_revenue_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "gross_profit"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-gross_profit-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "gross_margin"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-gross_margin-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "ebitda"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-ebitda-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "ebitda_margin"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-ebitda_margin-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "operating_profit"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-operating_profit-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "operating_margin"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-operating_margin-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "net_profit"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-net_profit-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "net_margin"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-net_margin-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "free_cash_flow"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-free_cash_flow-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "return_on_assets"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-return_on_assets-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "net_working_capital"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-net_working_capital-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "receivables_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-receivables_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "payables_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-payables_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "inventory_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-inventory_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "cash_conversion_cycle"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-cash_conversion_cycle-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "ar_overdue_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-ar_overdue_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "ar_90_plus_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-ar_90_plus_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "ap_overdue_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-ap_overdue_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "inventory_turnover"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-inventory_turnover-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "total_debt"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-total_debt-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "net_debt"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-net_debt-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "debt_to_assets"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-debt_to_assets-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "debt_to_equity"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-debt_to_equity-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "net_debt_to_ebitda"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-net_debt_to_ebitda-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "credit_utilization"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-credit_utilization-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "short_term_debt_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-short_term_debt_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "debt_maturing_90d"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-debt_maturing_90d-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "dscr"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-dscr-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "fixed_charge_coverage"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-fixed_charge_coverage-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "interest_coverage"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-interest_coverage-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "existing_debt_service"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-existing_debt_service-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "proposed_debt_service"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-proposed_debt_service-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "total_debt_service"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-total_debt_service-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "residual_cash_after_debt"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-residual_cash_after_debt-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "debt_service_headroom"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-debt_service_headroom-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "debt_payment_to_receipts"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-debt_payment_to_receipts-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "top_customer_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-top_customer_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "top_five_customer_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-top_five_customer_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "top_supplier_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-top_supplier_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "top_channel_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-top_channel_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "customer_hhi"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-customer_hhi-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "income_source_hhi"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-income_source_hhi-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "collateral_ltv"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-collateral_ltv-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "combined_ltv"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-combined_ltv-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "collateral_coverage"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-collateral_coverage-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "eligible_receivables"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-eligible_receivables-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "collateral_haircut_ratio"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-collateral_haircut_ratio-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "reconciliation_break_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-reconciliation_break_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "duplicate_transaction_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-duplicate_transaction_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "document_contradiction_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-document_contradiction_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "identity_mismatch_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-identity_mismatch_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "declared_income_gap_ratio"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-declared_income_gap_ratio-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "verified_gross_monthly_income"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-verified_gross_monthly_income-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "verified_net_monthly_income"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-verified_net_monthly_income-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "debt_to_income"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-debt_to_income-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "housing_to_income"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-housing_to_income-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "essential_monthly_spend"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-essential_monthly_spend-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "residual_monthly_income"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-residual_monthly_income-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "payment_to_income"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-payment_to_income-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "liquid_reserve_months"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "months"
                },
                "calculation_version": {
                  "const": "amlok-liquid_reserve_months-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "income_source_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-income_source_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "income_volatility"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-income_volatility-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "income_growth_yoy"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-income_growth_yoy-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "days_since_last_income"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-days_since_last_income-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "income_interruption_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-income_interruption_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "income_continuity_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-income_continuity_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "nsf_event_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-nsf_event_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "overdraft_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-overdraft_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "returned_payment_amount"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-returned_payment_amount-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "delinquent_obligation_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-delinquent_obligation_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "maximum_days_past_due"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-maximum_days_past_due-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "on_time_payment_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-on_time_payment_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "open_credit_obligation_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-open_credit_obligation_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "bureau_utilization"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-bureau_utilization-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "recent_credit_inquiry_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-recent_credit_inquiry_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "severe_delinquency_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-severe_delinquency_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "public_record_event_count"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "count"
                },
                "calculation_version": {
                  "const": "amlok-public_record_event_count-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "gross_sales"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-gross_sales-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "net_sales"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-net_sales-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "average_order_value"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-average_order_value-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "repeat_customer_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-repeat_customer_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "monthly_recurring_revenue"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-monthly_recurring_revenue-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "gross_revenue_retention"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-gross_revenue_retention-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "net_revenue_retention"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-net_revenue_retention-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "settlement_delay_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-settlement_delay_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "payroll_burden_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-payroll_burden_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "payroll_growth_yoy"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-payroll_growth_yoy-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "inventory_stockout_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-inventory_stockout_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "fulfillment_on_time_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-fulfillment_on_time_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "supplier_payment_delay_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-supplier_payment_delay_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "tax_liability"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-tax_liability-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "tax_overdue_amount"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-tax_overdue_amount-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "tax_payment_coverage"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-tax_payment_coverage-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "filing_coverage"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-filing_coverage-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "bank_accounting_match_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-bank_accounting_match_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "statement_balance_discrepancy"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-statement_balance_discrepancy-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "material_adjustment_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-material_adjustment_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "books_closing_lag_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-books_closing_lag_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "observed_account_coverage"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-observed_account_coverage-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "covered_history_days"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "days"
                },
                "calculation_version": {
                  "const": "amlok-covered_history_days-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "stale_source_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-stale_source_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "unclassified_transaction_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-unclassified_transaction_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "reconciled_value_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-reconciled_value_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "projected_minimum_cash"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-projected_minimum_cash-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "stress_dscr"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-stress_dscr-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "stress_residual_income"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-stress_residual_income-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "liquidity_shortfall"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-liquidity_shortfall-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "break_even_revenue_decline"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-break_even_revenue_decline-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "related_party_receipts_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-related_party_receipts_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "circular_flow_amount"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-circular_flow_amount-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "connected_counterparty_share"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-connected_counterparty_share-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "revenue_change_from_baseline"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-revenue_change_from_baseline-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "liquidity_change_from_baseline"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "calculation_version": {
                  "const": "amlok-liquidity_change_from_baseline-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "dscr_change_from_baseline"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-dscr_change_from_baseline-1"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "obligation_growth_from_baseline"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "calculation_version": {
                  "const": "amlok-obligation_growth_from_baseline-1"
                }
              }
            }
          }
        ]
      },
      "Dimension": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "enum": [
              "identity",
              "ownership_and_control",
              "cashflow",
              "liquidity",
              "revenue_quality",
              "profitability",
              "working_capital",
              "leverage",
              "repayment_capacity",
              "concentration",
              "collateral",
              "fraud_and_consistency",
              "income_and_affordability",
              "income_stability",
              "payment_behavior",
              "credit_history",
              "commerce_performance",
              "operating_resilience",
              "tax_and_compliance",
              "financial_reporting_quality",
              "data_quality",
              "forecasting_and_stress",
              "relationship_risk",
              "monitoring_change"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "summary": {
            "type": "string",
            "minLength": 1,
            "description": "Summary for Dimension. Constraints, requiredness and allowed values are defined by this schema."
          },
          "metrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Metric"
            },
            "description": "Every catalog metric assigned to this dimension exactly once, including unavailable and not-applicable entries. Segment analyses are in analyses; do not silently drop metrics."
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Evidence ids for Dimension. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "key",
          "status",
          "summary",
          "metrics",
          "evidence_ids"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "key": {
                  "const": "identity"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "business_age_months",
                          "verified_account_owner_ratio"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "ownership_and_control"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "ownership_disclosed_ratio",
                          "related_party_balance_share",
                          "supported_guarantee_coverage"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "cashflow"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "total_inflows",
                          "total_outflows",
                          "net_cash_flow",
                          "operating_cash_inflows",
                          "operating_cash_outflows",
                          "operating_net_cash_flow",
                          "internal_transfer_inflows",
                          "financing_inflows",
                          "positive_cashflow_month_share",
                          "cashflow_volatility",
                          "cashflow_change_90d"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "liquidity"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "unrestricted_cash",
                          "average_daily_balance",
                          "minimum_daily_balance",
                          "negative_balance_days",
                          "cash_buffer_days",
                          "current_ratio",
                          "quick_ratio",
                          "cash_ratio"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "revenue_quality"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "verified_revenue",
                          "recurring_revenue_share",
                          "revenue_growth_yoy",
                          "revenue_growth_90d",
                          "revenue_volatility",
                          "refund_amount_share",
                          "chargeback_amount_share",
                          "revenue_cash_realization",
                          "unverified_receipts_share",
                          "nonrecurring_revenue_share"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "profitability"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "gross_profit",
                          "gross_margin",
                          "ebitda",
                          "ebitda_margin",
                          "operating_profit",
                          "operating_margin",
                          "net_profit",
                          "net_margin",
                          "free_cash_flow",
                          "return_on_assets"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "working_capital"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "net_working_capital",
                          "receivables_days",
                          "payables_days",
                          "inventory_days",
                          "cash_conversion_cycle",
                          "ar_overdue_share",
                          "ar_90_plus_share",
                          "ap_overdue_share",
                          "inventory_turnover"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "leverage"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "total_debt",
                          "net_debt",
                          "debt_to_assets",
                          "debt_to_equity",
                          "net_debt_to_ebitda",
                          "credit_utilization",
                          "short_term_debt_share",
                          "debt_maturing_90d"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "repayment_capacity"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "dscr",
                          "fixed_charge_coverage",
                          "interest_coverage",
                          "existing_debt_service",
                          "proposed_debt_service",
                          "total_debt_service",
                          "residual_cash_after_debt",
                          "debt_service_headroom",
                          "debt_payment_to_receipts"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "concentration"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "top_customer_share",
                          "top_five_customer_share",
                          "top_supplier_share",
                          "top_channel_share",
                          "customer_hhi",
                          "income_source_hhi"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "collateral"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "collateral_ltv",
                          "combined_ltv",
                          "collateral_coverage",
                          "eligible_receivables",
                          "collateral_haircut_ratio"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "fraud_and_consistency"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "reconciliation_break_share",
                          "duplicate_transaction_share",
                          "document_contradiction_count",
                          "identity_mismatch_count",
                          "declared_income_gap_ratio"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "income_and_affordability"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "verified_gross_monthly_income",
                          "verified_net_monthly_income",
                          "debt_to_income",
                          "housing_to_income",
                          "essential_monthly_spend",
                          "residual_monthly_income",
                          "payment_to_income",
                          "liquid_reserve_months"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "income_stability"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "income_source_count",
                          "income_volatility",
                          "income_growth_yoy",
                          "days_since_last_income",
                          "income_interruption_days",
                          "income_continuity_share"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "payment_behavior"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "nsf_event_count",
                          "overdraft_days",
                          "returned_payment_amount",
                          "delinquent_obligation_count",
                          "maximum_days_past_due",
                          "on_time_payment_share"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "credit_history"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "open_credit_obligation_count",
                          "bureau_utilization",
                          "recent_credit_inquiry_count",
                          "severe_delinquency_count",
                          "public_record_event_count"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "commerce_performance"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "gross_sales",
                          "net_sales",
                          "average_order_value",
                          "repeat_customer_share",
                          "monthly_recurring_revenue",
                          "gross_revenue_retention",
                          "net_revenue_retention",
                          "settlement_delay_days"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "operating_resilience"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "payroll_burden_share",
                          "payroll_growth_yoy",
                          "inventory_stockout_share",
                          "fulfillment_on_time_share",
                          "supplier_payment_delay_days"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "tax_and_compliance"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "tax_liability",
                          "tax_overdue_amount",
                          "tax_payment_coverage",
                          "filing_coverage"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "financial_reporting_quality"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "bank_accounting_match_share",
                          "statement_balance_discrepancy",
                          "material_adjustment_share",
                          "books_closing_lag_days"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "data_quality"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "observed_account_coverage",
                          "covered_history_days",
                          "stale_source_share",
                          "unclassified_transaction_share",
                          "reconciled_value_share"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "forecasting_and_stress"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "projected_minimum_cash",
                          "stress_dscr",
                          "stress_residual_income",
                          "liquidity_shortfall",
                          "break_even_revenue_decline"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "relationship_risk"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "related_party_receipts_share",
                          "circular_flow_amount",
                          "connected_counterparty_share"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "key": {
                  "const": "monitoring_change"
                }
              }
            },
            "then": {
              "properties": {
                "metrics": {
                  "items": {
                    "properties": {
                      "key": {
                        "enum": [
                          "revenue_change_from_baseline",
                          "liquidity_change_from_baseline",
                          "dscr_change_from_baseline",
                          "obligation_growth_from_baseline"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "PolicyResult": {
        "type": "object",
        "properties": {
          "rule_id": {
            "type": "string",
            "minLength": 1,
            "description": "Rule id for PolicyResult. Constraints, requiredness and allowed values are defined by this schema."
          },
          "result": {
            "type": "string",
            "enum": [
              "pass",
              "fail",
              "unavailable",
              "not_applicable"
            ],
            "description": "Result for PolicyResult. Constraints, requiredness and allowed values are defined by this schema."
          },
          "actual": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual for PolicyResult. Constraints, requiredness and allowed values are defined by this schema."
          },
          "threshold": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
            "description": "Threshold for PolicyResult. Constraints, requiredness and allowed values are defined by this schema."
          },
          "unit": {
            "type": "string",
            "minLength": 1,
            "description": "Unit for PolicyResult. Constraints, requiredness and allowed values are defined by this schema."
          },
          "explanation": {
            "type": "string",
            "minLength": 1,
            "description": "Explanation for PolicyResult. Constraints, requiredness and allowed values are defined by this schema."
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Evidence ids for PolicyResult. Constraints, requiredness and allowed values are defined by this schema."
          },
          "metric_key": {
            "type": "string",
            "minLength": 1
          },
          "calculation_version": {
            "type": "string",
            "minLength": 1
          },
          "metric_window": {
            "$ref": "#/components/schemas/Window"
          }
        },
        "required": [
          "rule_id",
          "result",
          "actual",
          "threshold",
          "unit",
          "explanation",
          "evidence_ids",
          "metric_key",
          "calculation_version",
          "metric_window"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "result": {
                  "enum": [
                    "pass",
                    "fail"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "actual": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                }
              }
            },
            "else": {
              "properties": {
                "actual": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "SourceCoverage": {
        "type": "object",
        "properties": {
          "connection_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "integration_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "source_as_of": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source as of for SourceCoverage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "retrieved_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Retrieved at for SourceCoverage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "window": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Window"
              },
              {
                "type": "null"
              }
            ],
            "description": "Window for SourceCoverage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "status": {
            "type": "string",
            "enum": [
              "complete",
              "partial",
              "unavailable",
              "stale"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Limitations for SourceCoverage. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "connection_id",
          "integration_id",
          "source_as_of",
          "retrieved_at",
          "window",
          "status",
          "limitations"
        ],
        "additionalProperties": false
      },
      "RiskPackage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "origination_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Origination id for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "monitoring_run_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Monitoring run id for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "product": {
            "type": "string",
            "enum": [
              "insights",
              "signal"
            ],
            "description": "Product for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the record was created."
          },
          "as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "As of for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "previous_package_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Previous package id for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "application": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ApplicationInput"
              },
              {
                "type": "null"
              }
            ],
            "description": "Application for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "lending_product": {
            "$ref": "#/components/schemas/LendingProductVersion",
            "description": "Lending product for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "risk_policy": {
            "$ref": "#/components/schemas/RiskPolicyVersion",
            "description": "Risk policy for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "assessment": {
            "type": "object",
            "properties": {
              "recommendation": {
                "type": "string",
                "enum": [
                  "within_policy",
                  "outside_policy",
                  "review_required"
                ]
              },
              "is_institution_decision": {
                "const": false
              },
              "summary": {
                "type": "string",
                "minLength": 1
              },
              "reasons": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              }
            },
            "required": [
              "recommendation",
              "is_institution_decision",
              "summary",
              "reasons"
            ],
            "additionalProperties": false,
            "description": "Assessment for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dimension"
            },
            "description": "All 24 dimension families, exactly once. Available means every applicable metric is available; partial means some are available; unavailable means none can be calculated; not_applicable means no metric applies.",
            "minItems": 24,
            "maxItems": 24
          },
          "policy_results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyResult"
            },
            "description": "Policy results for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourceCoverage"
            },
            "description": "Sources for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Limitations for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "evidence_set": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              "sha256": {
                "type": "string",
                "minLength": 1,
                "pattern": "^[a-f0-9]{64}$"
              },
              "count": {
                "type": "integer",
                "minimum": 0
              }
            },
            "required": [
              "id",
              "sha256",
              "count"
            ],
            "additionalProperties": false,
            "description": "Evidence set for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "versions": {
            "type": "object",
            "properties": {
              "schema": {
                "type": "string",
                "minLength": 1
              },
              "normalization": {
                "type": "string",
                "minLength": 1
              },
              "calculation": {
                "type": "string",
                "minLength": 1
              },
              "model": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "schema",
              "normalization",
              "calculation",
              "model"
            ],
            "additionalProperties": false,
            "description": "Versions for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "billing_usage_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Billing usage id for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque ID within the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Current authorized document associations. Includes submitted documents and later documents accepted against open requirements. A completed assessment freezes its own document and evidence references."
          },
          "record_version": {
            "type": "integer",
            "const": 1,
            "description": "Immutable published record; event.resource_version is always 1."
          },
          "deal_snapshot_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Exact Signal lender snapshot used; null for Insights."
              },
              {
                "type": "null"
              }
            ],
            "description": "Deal snapshot id for RiskPackage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "scope": {
            "$ref": "#/components/schemas/AssessmentScope"
          },
          "catalog_version": {
            "const": "2026-11-06.1"
          },
          "completeness": {
            "type": "object",
            "properties": {
              "expected_metric_count": {
                "const": 149
              },
              "available_metric_count": {
                "type": "integer",
                "minimum": 0
              },
              "unavailable_metric_count": {
                "type": "integer",
                "minimum": 0
              },
              "not_applicable_metric_count": {
                "type": "integer",
                "minimum": 0
              },
              "coverage_statement": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "expected_metric_count",
              "available_metric_count",
              "unavailable_metric_count",
              "not_applicable_metric_count",
              "coverage_statement"
            ],
            "additionalProperties": false
          },
          "findings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RiskFinding"
            }
          },
          "analyses": {
            "type": "object",
            "properties": {
              "verifications": {
                "$ref": "#/components/schemas/VerificationCheckSection"
              },
              "financial_statements": {
                "$ref": "#/components/schemas/FinancialStatementSection"
              },
              "obligations": {
                "$ref": "#/components/schemas/DebtObligationSection"
              },
              "income_streams": {
                "$ref": "#/components/schemas/IncomeStreamSection"
              },
              "reconciliations": {
                "$ref": "#/components/schemas/ReconciliationSection"
              },
              "concentrations": {
                "$ref": "#/components/schemas/ConcentrationSegmentSection"
              },
              "projections": {
                "$ref": "#/components/schemas/RiskProjectionSection"
              },
              "benchmarks": {
                "$ref": "#/components/schemas/RiskBenchmarkSection"
              },
              "model_outputs": {
                "$ref": "#/components/schemas/RiskModelOutputSection"
              },
              "changes": {
                "$ref": "#/components/schemas/RiskChangeSection"
              },
              "collateral": {
                "$ref": "#/components/schemas/CollateralAssetSection"
              },
              "relationships": {
                "$ref": "#/components/schemas/BorrowerRelationshipSection"
              },
              "credit_reports": {
                "$ref": "#/components/schemas/CreditReportAssessmentSection"
              },
              "tax_obligations": {
                "$ref": "#/components/schemas/TaxObligationSection"
              }
            },
            "required": [
              "verifications",
              "financial_statements",
              "obligations",
              "income_streams",
              "reconciliations",
              "concentrations",
              "projections",
              "benchmarks",
              "model_outputs",
              "changes",
              "collateral",
              "relationships",
              "credit_reports",
              "tax_obligations"
            ],
            "additionalProperties": false
          },
          "required_actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "minLength": 1
                },
                "description": {
                  "type": "string",
                  "minLength": 1
                },
                "metric_keys": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "requirement_ids": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uniqueItems": true
                }
              },
              "required": [
                "code",
                "description",
                "metric_keys",
                "requirement_ids"
              ],
              "additionalProperties": false
            }
          },
          "verification": {
            "$ref": "#/components/schemas/VerificationAssessment"
          }
        },
        "required": [
          "id",
          "borrower_id",
          "origination_id",
          "monitoring_run_id",
          "product",
          "created_at",
          "as_of",
          "previous_package_id",
          "application",
          "lending_product",
          "risk_policy",
          "assessment",
          "dimensions",
          "policy_results",
          "sources",
          "limitations",
          "evidence_set",
          "versions",
          "billing_usage_id",
          "document_ids",
          "record_version",
          "deal_snapshot_id",
          "scope",
          "catalog_version",
          "completeness",
          "findings",
          "analyses",
          "required_actions",
          "verification"
        ],
        "additionalProperties": false,
        "description": "Immutable completed result. Summaries, metrics and evidence must reference the exact input versions. A Signal package does not incur another Insights charge. A model version is null when no validated, entitled model was used. Includes every defined metric with an explicit availability state, source-linked analyses and exact catalog/calculation versions. Completeness is evidence coverage, not creditworthiness. Cross-field invariants are specified in the risk-package methodology.",
        "oneOf": [
          {
            "properties": {
              "product": {
                "const": "insights"
              },
              "origination_id": {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              "monitoring_run_id": {
                "type": "null"
              },
              "application": {
                "$ref": "#/components/schemas/ApplicationInput"
              },
              "deal_snapshot_id": {
                "type": "null"
              }
            },
            "title": "Insights risk package"
          },
          {
            "properties": {
              "product": {
                "const": "signal"
              },
              "monitoring_run_id": {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              "deal_snapshot_id": {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier in the authorized workspace and environment."
              }
            },
            "title": "Signal risk package"
          }
        ],
        "allOf": [
          {
            "if": {
              "properties": {
                "policy_results": {
                  "contains": {
                    "properties": {
                      "result": {
                        "const": "unavailable"
                      }
                    },
                    "required": [
                      "result"
                    ]
                  }
                }
              }
            },
            "then": {
              "properties": {
                "assessment": {
                  "properties": {
                    "recommendation": {
                      "const": "review_required"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "EvidenceSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "evidence_set_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "resource_type": {
            "type": "string",
            "minLength": 1,
            "description": "Resource type for EvidenceSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "resource_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic resource version for event reconciliation."
          },
          "kind": {
            "type": "string",
            "enum": [
              "normalized_record",
              "provider_report",
              "document"
            ],
            "description": "Kind for EvidenceSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "source_id": {
            "type": "string",
            "minLength": 1,
            "description": "Source id for EvidenceSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed at for EvidenceSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sha256": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[a-f0-9]{64}$",
            "description": "Sha256 for EvidenceSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "access": {
            "type": "string",
            "enum": [
              "available",
              "restricted",
              "deleted"
            ],
            "description": "Access for EvidenceSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "access_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Access reason for EvidenceSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Document id for EvidenceSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "data_record_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact DataRecord version used, when this evidence originated in the data API. null for standalone files/reports. Evidence access never implicitly grants data:read."
          }
        },
        "required": [
          "id",
          "evidence_set_id",
          "resource_type",
          "resource_id",
          "record_version",
          "kind",
          "source_id",
          "observed_at",
          "sha256",
          "access",
          "access_reason",
          "document_id",
          "data_record_id"
        ],
        "additionalProperties": false
      },
      "Evidence": {
        "type": "object",
        "properties": {
          "record": {
            "$ref": "#/components/schemas/EvidenceSummary",
            "description": "Record for Evidence. Constraints, requiredness and allowed values are defined by this schema."
          },
          "normalized": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/NormalizedConnectionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedConsentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedSyncJobRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedBusinessRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedPersonRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRelationshipRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedVerificationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedVerificationCheckRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedScreeningMatchRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedDocumentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedBankAccountRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAccountBalanceRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedBankTransactionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRecurringStreamRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedIncomeObservationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedMerchantAccountRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedPaymentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedProcessorTransactionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedPayoutRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRefundRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedDisputeRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCounterpartyRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedOrderRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedOrderLineRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedSubscriptionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLedgerAccountRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedJournalRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedJournalLineRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedInvoiceRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedBillRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCreditNoteRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAccountingPaymentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedFinancialStatementRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedStatementLineRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedTaxObligationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedProductRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLocationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedInventoryBalanceRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedInventoryMovementRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedPurchaseOrderRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedShipmentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedProductionOrderRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedProjectRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedApplicationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCreditFacilityRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLoanRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedInstallmentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRepaymentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCollateralRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedGuaranteeRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCovenantRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedDecisionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLienSearchRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLienRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedFilingEventRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAttributeRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRiskSnapshotRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedMonitorRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAlertRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedWorkflowRunRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRequirementRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAuditEventRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedReconciliationLinkRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedVerificationAssessment"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized for Evidence. Constraints, requiredness and allowed values are defined by this schema."
          },
          "provider_report_document_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider report document id for Evidence. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "record",
          "normalized",
          "provider_report_document_id"
        ],
        "additionalProperties": false,
        "description": "Read the frozen evidence version, never the latest replacement. Licensed provider reports and original files use controlled document downloads. Restricted evidence returns metadata and an explicit reason, never secret or unlicensed content.",
        "allOf": [
          {
            "if": {
              "properties": {
                "record": {
                  "properties": {
                    "access": {
                      "enum": [
                        "restricted",
                        "deleted"
                      ]
                    }
                  }
                }
              }
            },
            "then": {
              "properties": {
                "normalized": {
                  "type": "null"
                },
                "provider_report_document_id": {
                  "type": "null"
                },
                "record": {
                  "properties": {
                    "access_reason": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "Deal": {
        "type": "object",
        "properties": {
          "institution_reference": {
            "type": "string",
            "minLength": 1,
            "description": "Institution reference for Deal. Constraints, requiredness and allowed values are defined by this schema."
          },
          "funded_amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Funded amount for Deal. Constraints, requiredness and allowed values are defined by this schema."
          },
          "outstanding_amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Outstanding amount for Deal. Constraints, requiredness and allowed values are defined by this schema."
          },
          "funded_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Funded at for Deal. Constraints, requiredness and allowed values are defined by this schema."
          },
          "maturity_date": {
            "type": "string",
            "minLength": 1,
            "format": "date",
            "description": "Maturity date for Deal. Constraints, requiredness and allowed values are defined by this schema."
          },
          "repayment_frequency": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "biweekly",
              "monthly",
              "at_maturity",
              "variable"
            ],
            "description": "Repayment frequency for Deal. Constraints, requiredness and allowed values are defined by this schema."
          },
          "terms_document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Terms document ids for Deal. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "institution_reference",
          "funded_amount",
          "outstanding_amount",
          "funded_at",
          "maturity_date",
          "repayment_frequency",
          "terms_document_ids"
        ],
        "additionalProperties": false,
        "description": "Complete institution-supplied deal terms at one point in time. Initial input is captured during enrollment; later inputs are append-only deal snapshots."
      },
      "BaselineInput": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "risk_package_id": {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier in the authorized workspace and environment."
              }
            },
            "required": [
              "risk_package_id"
            ],
            "additionalProperties": false,
            "title": "Existing risk package"
          },
          {
            "type": "object",
            "properties": {
              "portfolio": {
                "type": "object",
                "properties": {
                  "lending_product_version_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Opaque identifier in the authorized workspace and environment."
                  },
                  "application": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/ApplicationInput"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "document_ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Opaque identifier in the authorized workspace and environment."
                    },
                    "uniqueItems": true,
                    "description": "Identifiers of the associated authorized records."
                  }
                },
                "required": [
                  "lending_product_version_id",
                  "application",
                  "document_ids"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "portfolio"
            ],
            "additionalProperties": false,
            "title": "Explicit portfolio baseline"
          }
        ],
        "description": "Use an existing compatible risk package, or explicit portfolio inputs for Signal baseline preparation. Portfolio initialization is included in Signal; no separate Insights purchase or undocumented reference is needed."
      },
      "CreateMonitor": {
        "type": "object",
        "properties": {
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "deal": {
            "$ref": "#/components/schemas/Deal",
            "description": "Deal for CreateMonitor. Constraints, requiredness and allowed values are defined by this schema."
          },
          "baseline": {
            "$ref": "#/components/schemas/BaselineInput",
            "description": "Baseline for CreateMonitor. Constraints, requiredness and allowed values are defined by this schema."
          },
          "risk_policy_version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "cadence_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Connection ids for CreateMonitor. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "borrower_id",
          "deal",
          "baseline",
          "risk_policy_version_id",
          "cadence_id",
          "connection_ids"
        ],
        "additionalProperties": false
      },
      "UpdateMonitor": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused",
              "stopped"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "risk_policy_version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "cadence_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier in the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Replacement set for future evaluations. Each source must belong to the borrower and authorize continuous_monitoring. Change uses If-Match and leaves past runs untouched."
          }
        },
        "required": [],
        "additionalProperties": false,
        "minProperties": 1,
        "description": "Configuration only, with If-Match. Changes apply prospectively and never rewrite packages, evidence, events or historical charges. Stopped is terminal."
      },
      "Monitor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "deal": {
            "$ref": "#/components/schemas/Deal",
            "description": "Deal for Monitor. Constraints, requiredness and allowed values are defined by this schema."
          },
          "status": {
            "type": "string",
            "enum": [
              "initializing",
              "active",
              "paused",
              "requires_action",
              "waiting_for_credits",
              "stopped",
              "failed"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "baseline_package_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Baseline package id for Monitor. Constraints, requiredness and allowed values are defined by this schema."
          },
          "latest_package_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Latest package id for Monitor. Constraints, requiredness and allowed values are defined by this schema."
          },
          "risk_policy_version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "cadence_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "next_evaluation_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Next evaluation at for Monitor. Constraints, requiredness and allowed values are defined by this schema."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic resource version for event reconciliation."
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier in the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Identifiers of the associated authorized records."
          },
          "requirements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Requirement"
            },
            "description": "Requirements for Monitor. Constraints, requiredness and allowed values are defined by this schema."
          },
          "failure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Error"
              },
              {
                "type": "null"
              }
            ],
            "description": "Failure for Monitor. Constraints, requiredness and allowed values are defined by this schema."
          },
          "latest_deal_snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier in the authorized workspace and environment."
          },
          "updated_at": {
            "type": "string",
            "minLength": 1,
            "description": "UTC timestamp in RFC 3339 format.",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "borrower_id",
          "deal",
          "status",
          "baseline_package_id",
          "latest_package_id",
          "risk_policy_version_id",
          "cadence_id",
          "next_evaluation_at",
          "record_version",
          "connection_ids",
          "requirements",
          "failure",
          "latest_deal_snapshot_id",
          "updated_at"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "const": "requires_action"
                }
              }
            },
            "then": {
              "properties": {
                "requirements": {
                  "minItems": 1
                }
              }
            },
            "else": {
              "properties": {
                "requirements": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "failed"
                }
              }
            },
            "then": {
              "properties": {
                "failure": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "else": {
              "properties": {
                "failure": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "MonitoringRun": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "monitor_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "status": {
            "type": "string",
            "enum": [
              "processing",
              "completed",
              "partial",
              "failed",
              "skipped"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "started_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Started at for MonitoringRun. Constraints, requiredness and allowed values are defined by this schema."
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Completed at for MonitoringRun. Constraints, requiredness and allowed values are defined by this schema."
          },
          "risk_package_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Risk package id for MonitoringRun. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourceCoverage"
            },
            "description": "Sources for MonitoringRun. Constraints, requiredness and allowed values are defined by this schema."
          },
          "evidence_set_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence set id for MonitoringRun. Constraints, requiredness and allowed values are defined by this schema."
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Limitations for MonitoringRun. Constraints, requiredness and allowed values are defined by this schema."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic version for this run; terminal evaluations are immutable."
          },
          "deal_snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Exact lender input snapshot frozen at evaluation start."
          },
          "failure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Error"
              },
              {
                "type": "null"
              }
            ],
            "description": "Failure for MonitoringRun. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "monitor_id",
          "status",
          "started_at",
          "completed_at",
          "risk_package_id",
          "sources",
          "evidence_set_id",
          "limitations",
          "record_version",
          "deal_snapshot_id",
          "failure"
        ],
        "additionalProperties": false,
        "description": "One scheduled or change-driven evaluation, with per-integration coverage and frozen evidence. A skipped or stale sync is not a clean risk result.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "failed",
                    "skipped"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "failure": {
                  "$ref": "#/components/schemas/Error"
                },
                "risk_package_id": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "completed",
                    "partial"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "risk_package_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque identifier in the authorized workspace and environment."
                },
                "completed_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "UTC timestamp in RFC 3339 format.",
                  "format": "date-time"
                },
                "failure": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "Alert": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "monitor_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "resolved"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "severity": {
            "type": "string",
            "enum": [
              "info",
              "warning",
              "critical"
            ],
            "description": "Severity for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "rule_id": {
            "type": "string",
            "minLength": 1,
            "description": "Rule id for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "policy_version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "description": "Message for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "detected_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Detected at for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "resolved_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Resolved at for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "previous_package_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Previous package id for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "current_package_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "metric_key": {
            "type": "string",
            "minLength": 1,
            "description": "Metric key for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "previous_value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Previous value for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "current_value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current value for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "threshold": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Threshold for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "unit": {
            "type": "string",
            "minLength": 1,
            "description": "Unit for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Evidence ids for Alert. Constraints, requiredness and allowed values are defined by this schema."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic version for this resource; compare with event.resource_version."
          }
        },
        "required": [
          "id",
          "monitor_id",
          "borrower_id",
          "status",
          "severity",
          "rule_id",
          "policy_version_id",
          "message",
          "detected_at",
          "resolved_at",
          "previous_package_id",
          "current_package_id",
          "metric_key",
          "previous_value",
          "current_value",
          "threshold",
          "unit",
          "evidence_ids",
          "record_version"
        ],
        "additionalProperties": false,
        "description": "System-derived risk condition. Resolution needs comparable fresh evidence; no customer edit, dismissal or deletion. Institutions handle case management elsewhere."
      },
      "Event": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "type": {
            "type": "string",
            "enum": [
              "embedding_session.completed",
              "connection.action_required",
              "connection.status_changed",
              "origination.action_required",
              "origination.status_changed",
              "origination.completed",
              "origination.failed",
              "risk_package.created",
              "monitor.status_changed",
              "monitoring_run.completed",
              "monitoring_run.failed",
              "alert.created",
              "alert.resolved",
              "export.ready",
              "export.failed",
              "data.updated",
              "document.status_changed",
              "billing.payment_updated",
              "billing.transaction_posted",
              "deal_snapshot.created"
            ],
            "description": "Type for Event. Constraints, requiredness and allowed values are defined by this schema."
          },
          "occurred_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Occurred at for Event. Constraints, requiredness and allowed values are defined by this schema."
          },
          "resource_type": {
            "type": "string",
            "minLength": 1,
            "enum": [
              "alert",
              "billing_payment",
              "billing_transaction",
              "connection",
              "deal_snapshot",
              "document",
              "embedding_session",
              "export",
              "monitor",
              "monitoring_run",
              "origination",
              "risk_package"
            ],
            "description": "Resource type for Event. Constraints, requiredness and allowed values are defined by this schema."
          },
          "resource_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "resource_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Resource version for Event. Constraints, requiredness and allowed values are defined by this schema."
          },
          "borrower_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Borrower that owns this resource; must match the key workspace and environment."
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ],
            "description": "Environment for Event. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "type",
          "occurred_at",
          "resource_type",
          "resource_id",
          "resource_version",
          "borrower_id",
          "environment"
        ],
        "additionalProperties": false,
        "description": "Minimal at-least-once notification, without financial payloads, tokens or download URLs. Fetch authorized resource detail. Events and delivery attempts are different records.",
        "allOf": [
          {
            "if": {
              "properties": {
                "type": {
                  "const": "embedding_session.completed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "embedding_session"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "connection.action_required"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "connection"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "connection.status_changed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "connection"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "origination.action_required"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "origination"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "origination.status_changed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "origination"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "origination.completed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "origination"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "origination.failed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "origination"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "risk_package.created"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "risk_package"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "monitor.status_changed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "monitor"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "monitoring_run.completed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "monitoring_run"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "monitoring_run.failed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "monitoring_run"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "alert.created"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "alert"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "alert.resolved"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "alert"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "export.ready"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "export"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "export.failed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "export"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "data.updated"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "connection"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "document.status_changed"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "document"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "billing.payment_updated"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "billing_payment"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "billing.transaction_posted"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "billing_transaction"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "deal_snapshot.created"
                }
              }
            },
            "then": {
              "properties": {
                "resource_type": {
                  "const": "deal_snapshot"
                }
              }
            }
          }
        ]
      },
      "EventPage": {
        "type": "object",
        "properties": {
          "next_cursor": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Next cursor for EventPage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "has_more": {
            "type": "boolean",
            "description": "Has more for EventPage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "resume_cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Durable continuation position, present even on an empty page. Check retention before accepting; expired cursors return 410."
          },
          "resume_expires_at": {
            "type": "string",
            "minLength": 1,
            "description": "Expiration of the returned resume cursor. Poll empty pages too and atomically advance the checkpoint.",
            "format": "date-time"
          }
        },
        "required": [
          "next_cursor",
          "has_more",
          "resume_cursor",
          "resume_expires_at"
        ],
        "additionalProperties": false
      },
      "CreateExport": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "risk_package",
              "evidence",
              "billing",
              "data"
            ],
            "description": "Kind for CreateExport. Constraints, requiredness and allowed values are defined by this schema."
          },
          "risk_package_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "evidence_set_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "billing_report_type": {
            "type": "string",
            "enum": [
              "usage",
              "credits",
              "statements",
              "funding",
              "rates",
              "workload"
            ],
            "description": "Billing report type for CreateExport. Constraints, requiredness and allowed values are defined by this schema."
          },
          "window": {
            "$ref": "#/components/schemas/Window",
            "description": "Window for CreateExport. Constraints, requiredness and allowed values are defined by this schema."
          },
          "format": {
            "type": "string",
            "enum": [
              "json",
              "csv",
              "pdf"
            ],
            "description": "Format for CreateExport. Constraints, requiredness and allowed values are defined by this schema."
          },
          "data_snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque ID within the authorized workspace and environment."
          }
        },
        "required": [
          "kind",
          "format"
        ],
        "additionalProperties": false,
        "oneOf": [
          {
            "properties": {
              "kind": {
                "const": "risk_package"
              },
              "format": {
                "type": "string",
                "enum": [
                  "json",
                  "pdf"
                ]
              }
            },
            "required": [
              "risk_package_id"
            ],
            "not": {
              "anyOf": [
                {
                  "required": [
                    "evidence_set_id"
                  ]
                },
                {
                  "required": [
                    "billing_report_type"
                  ]
                },
                {
                  "required": [
                    "window"
                  ]
                },
                {
                  "required": [
                    "data_snapshot_id"
                  ]
                }
              ]
            },
            "title": "Risk-package export"
          },
          {
            "properties": {
              "kind": {
                "const": "evidence"
              },
              "format": {
                "type": "string",
                "enum": [
                  "json",
                  "csv"
                ]
              }
            },
            "required": [
              "evidence_set_id"
            ],
            "not": {
              "anyOf": [
                {
                  "required": [
                    "risk_package_id"
                  ]
                },
                {
                  "required": [
                    "billing_report_type"
                  ]
                },
                {
                  "required": [
                    "window"
                  ]
                },
                {
                  "required": [
                    "data_snapshot_id"
                  ]
                }
              ]
            },
            "title": "Evidence export"
          },
          {
            "properties": {
              "kind": {
                "const": "billing"
              },
              "format": {
                "type": "string",
                "enum": [
                  "json",
                  "csv"
                ]
              }
            },
            "required": [
              "billing_report_type",
              "window"
            ],
            "not": {
              "anyOf": [
                {
                  "required": [
                    "risk_package_id"
                  ]
                },
                {
                  "required": [
                    "evidence_set_id"
                  ]
                },
                {
                  "required": [
                    "data_snapshot_id"
                  ]
                }
              ]
            },
            "title": "Billing export"
          },
          {
            "title": "Collected data export",
            "properties": {
              "kind": {
                "const": "data"
              },
              "format": {
                "type": "string",
                "enum": [
                  "json",
                  "csv"
                ]
              }
            },
            "required": [
              "data_snapshot_id"
            ],
            "not": {
              "anyOf": [
                {
                  "required": [
                    "risk_package_id"
                  ]
                },
                {
                  "required": [
                    "evidence_set_id"
                  ]
                },
                {
                  "required": [
                    "billing_report_type"
                  ]
                },
                {
                  "required": [
                    "window"
                  ]
                }
              ]
            }
          }
        ]
      },
      "Export": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "processing",
              "completed",
              "failed"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the record was created."
          },
          "format": {
            "type": "string",
            "enum": [
              "json",
              "csv",
              "pdf"
            ],
            "description": "Format for Export. Constraints, requiredness and allowed values are defined by this schema."
          },
          "source": {
            "$ref": "#/components/schemas/CreateExport",
            "description": "Source for Export. Constraints, requiredness and allowed values are defined by this schema."
          },
          "failure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Error"
              },
              {
                "type": "null"
              }
            ],
            "description": "Failure for Export. Constraints, requiredness and allowed values are defined by this schema."
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Retained file expiry; null until completed. Separate from each download-link expiry.",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "UTC expiration; do not use this resource after this instant."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic version for this resource; compare with event.resource_version."
          }
        },
        "required": [
          "id",
          "status",
          "created_at",
          "format",
          "source",
          "failure",
          "expires_at",
          "record_version"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "const": "completed"
                }
              }
            },
            "then": {
              "properties": {
                "expires_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "UTC timestamp in RFC 3339 format.",
                  "format": "date-time"
                },
                "failure": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "failed"
                }
              }
            },
            "then": {
              "properties": {
                "failure": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        ]
      },
      "Delivery": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "event_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "endpoint_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "attempt": {
            "type": "integer",
            "minimum": 1,
            "description": "Attempt for Delivery. Constraints, requiredness and allowed values are defined by this schema."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "delivered",
              "failed"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "attempted_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Attempted at for Delivery. Constraints, requiredness and allowed values are defined by this schema."
          },
          "http_status": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 100,
                "maximum": 599
              },
              {
                "type": "null"
              }
            ],
            "description": "Http status for Delivery. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "event_id",
          "endpoint_id",
          "attempt",
          "status",
          "attempted_at",
          "http_status"
        ],
        "additionalProperties": false
      },
      "ReplayEvent": {
        "type": "object",
        "properties": {
          "event_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "endpoint_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          }
        },
        "required": [
          "event_id",
          "endpoint_id"
        ],
        "additionalProperties": false
      },
      "ReplayReceipt": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "event_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "status": {
            "const": "accepted",
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          }
        },
        "required": [
          "id",
          "event_id",
          "status"
        ],
        "additionalProperties": false,
        "description": "Requeues delivery only. It never reruns analysis, modifies an alert or creates a usage charge."
      },
      "BillingSummary": {
        "type": "object",
        "properties": {
          "as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "As of for BillingSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "currency": {
            "const": "CAD",
            "description": "Currency for BillingSummary. Constraints, requiredness and allowed values are defined by this schema."
          },
          "available_credits": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Current spendable CAD credits at the reporting snapshot."
          },
          "spent_credits": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Cumulative posted usage deductions in CAD, expressed as a positive total."
          },
          "billing_account_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "paid_funding_credits": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Cumulative posted paid funding credits in CAD; excludes pending or failed payments."
          },
          "promotional_credits": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Cumulative posted promotional credits in CAD."
          },
          "adjustment_credits": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Signed sum of posted corrections and adjustments in CAD."
          },
          "refunded_credits": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Cumulative final-refund deductions in CAD, expressed as a positive total."
          },
          "auto_pay": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "trigger_amount": {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$"
              },
              "top_up_amount": {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$"
              }
            },
            "required": [
              "enabled",
              "trigger_amount",
              "top_up_amount"
            ],
            "additionalProperties": false,
            "description": "Actual read-only portal configuration. Values do not authorize a payment or expose a payment method. Changes are made in the console."
          },
          "snapshot_expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "Expiry for snapshot_id on related billing reads."
          }
        },
        "required": [
          "as_of",
          "currency",
          "available_credits",
          "spent_credits",
          "billing_account_id",
          "snapshot_id",
          "paid_funding_credits",
          "promotional_credits",
          "adjustment_credits",
          "refunded_credits",
          "auto_pay",
          "snapshot_expires_at"
        ],
        "additionalProperties": false,
        "description": "Read-only lifetime workspace CAD totals as of one snapshot. available_credits = paid_funding_credits + promotional_credits + adjustment_credits - spent_credits - refunded_credits. Sum posted funding/usage/adjustment/final_refund entries; pending payments are excluded. Corrections use signed adjustments. No reserved credits."
      },
      "BillingTransaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "posted_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Posted at for BillingTransaction. Constraints, requiredness and allowed values are defined by this schema."
          },
          "amount": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Amount for BillingTransaction. Constraints, requiredness and allowed values are defined by this schema."
          },
          "currency": {
            "const": "CAD",
            "description": "Currency for BillingTransaction. Constraints, requiredness and allowed values are defined by this schema."
          },
          "kind": {
            "type": "string",
            "enum": [
              "funding",
              "usage",
              "adjustment",
              "final_refund"
            ],
            "description": "Kind for BillingTransaction. Constraints, requiredness and allowed values are defined by this schema."
          },
          "product": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "insights",
                  "signal"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Product for BillingTransaction. Constraints, requiredness and allowed values are defined by this schema."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Description for BillingTransaction. Constraints, requiredness and allowed values are defined by this schema."
          },
          "usage_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier, authorized within the API key workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Usage id for BillingTransaction. Constraints, requiredness and allowed values are defined by this schema."
          },
          "payment_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Related funding payment or refund source; null when no payment applies."
          },
          "borrower_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Borrower charged when applicable; funding is workspace-wide and normally null."
          },
          "balance_after": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Spendable CAD balance immediately after this entry in sequence order."
          },
          "sequence": {
            "type": "integer",
            "minimum": 1,
            "description": "Strictly increasing posting order within the workspace wallet."
          },
          "funding_type": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "paid",
                  "promotional"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Paid or promotional credit for funding entries; null for other kinds."
          },
          "record_version": {
            "type": "integer",
            "const": 1,
            "description": "Immutable published record; event.resource_version is always 1."
          },
          "related_transaction_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original immutable transaction corrected or reversed by this entry; null otherwise."
          }
        },
        "required": [
          "id",
          "snapshot_id",
          "posted_at",
          "amount",
          "currency",
          "kind",
          "product",
          "description",
          "usage_id",
          "payment_id",
          "borrower_id",
          "balance_after",
          "sequence",
          "funding_type",
          "record_version",
          "related_transaction_id"
        ],
        "additionalProperties": false,
        "description": "Immutable signed CAD wallet movement. Funding is positive, usage and final refunds negative, adjustments signed. sequence gives total posting order; balance_after is the historical balance after this entry. Promotional funding has no payment; paid funding links payment_id. related_transaction_id links corrections/reversals.",
        "allOf": [
          {
            "if": {
              "properties": {
                "kind": {
                  "const": "usage"
                }
              }
            },
            "then": {
              "properties": {
                "usage_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque ID within the authorized workspace and environment."
                },
                "product": {
                  "type": "string",
                  "enum": [
                    "insights",
                    "signal"
                  ]
                },
                "amount": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-[0-9]+\\.[0-9]{2}$"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "kind": {
                  "const": "funding"
                }
              }
            },
            "then": {
              "properties": {
                "funding_type": {
                  "type": "string",
                  "enum": [
                    "paid",
                    "promotional"
                  ]
                },
                "amount": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$"
                }
              }
            },
            "else": {
              "properties": {
                "funding_type": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "funding_type": {
                  "const": "paid"
                }
              }
            },
            "then": {
              "properties": {
                "payment_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque ID within the authorized workspace and environment."
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "funding_type": {
                  "const": "promotional"
                }
              }
            },
            "then": {
              "properties": {
                "payment_id": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "ConfiguredSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "version": {
            "type": "string",
            "minLength": 1,
            "description": "Version for ConfiguredSchema. Constraints, requiredness and allowed values are defined by this schema."
          },
          "json_schema": {
            "type": "object",
            "description": "JSON Schema 2020-12, enforced server-side. Clients can validate the same definition before submitting."
          }
        },
        "required": [
          "id",
          "version",
          "json_schema"
        ],
        "additionalProperties": false
      },
      "Configuration": {
        "type": "object",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "insights",
                "signal"
              ]
            },
            "description": "Products for Configuration. Constraints, requiredness and allowed values are defined by this schema."
          },
          "embedding_version_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "IDs of the published embedding_versions entries. Console owns design; API discovers immutable versions."
          },
          "application_schemas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConfiguredSchema"
            },
            "description": "Application schemas for Configuration. Constraints, requiredness and allowed values are defined by this schema."
          },
          "pricing_schemas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConfiguredSchema"
            },
            "description": "Pricing schemas for Configuration. Constraints, requiredness and allowed values are defined by this schema."
          },
          "cadences": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque identifier, authorized within the API key workspace and environment."
                },
                "description": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "id",
                "description"
              ],
              "additionalProperties": false
            },
            "description": "Cadences for Configuration. Constraints, requiredness and allowed values are defined by this schema."
          },
          "dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RiskMetricDefinition"
            },
            "description": "Entitled scalar metric definitions accepted by PolicyRule.dimension_key. Discovery can be a subset of the public catalog; unsupported or inapplicable policy keys are rejected. No family label is a scalar policy key."
          },
          "integration_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier, authorized within the API key workspace and environment."
            },
            "uniqueItems": true,
            "description": "Integration ids for Configuration. Constraints, requiredness and allowed values are defined by this schema."
          },
          "operational_profile": {
            "$ref": "#/components/schemas/OperationalProfile",
            "description": "Operational profile for Configuration. Constraints, requiredness and allowed values are defined by this schema."
          },
          "embedding_versions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HubVersion"
            },
            "description": "Embedding versions for Configuration. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sandbox": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "scenario_ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Opaque identifier in the authorized workspace and environment."
                    },
                    "uniqueItems": true,
                    "description": "Scenario identifiers accepted by X-AMLOK-Sandbox-Scenario; only in Sandbox."
                  },
                  "test_integration_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Synthetic integration available in the Sandbox Hub. No real bank login is required."
                  }
                },
                "required": [
                  "scenario_ids",
                  "test_integration_id"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Sandbox for Configuration. Constraints, requiredness and allowed values are defined by this schema."
          },
          "risk_catalog_version": {
            "const": "2026-11-06.1"
          }
        },
        "required": [
          "products",
          "embedding_version_ids",
          "application_schemas",
          "pricing_schemas",
          "cadences",
          "dimensions",
          "integration_ids",
          "operational_profile",
          "embedding_versions",
          "sandbox",
          "risk_catalog_version"
        ],
        "additionalProperties": false,
        "description": "Discover approved configuration for this key. The console manages embedding designs, API keys, webhook destinations and signing secrets. Integration catalog coverage does not by itself grant access."
      },
      "RequestReceipt": {
        "type": "object",
        "properties": {
          "idempotency_key": {
            "type": "string",
            "minLength": 1,
            "description": "Idempotency key for RequestReceipt. Constraints, requiredness and allowed values are defined by this schema."
          },
          "operation_id": {
            "type": "string",
            "minLength": 1,
            "description": "Original operationId. Combine with the retained resource ID and the operation index to recover accepted work; never create a new command solely because replay expired."
          },
          "resource_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier, authorized within the API key workspace and environment."
          },
          "accepted_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "Accepted at for RequestReceipt. Constraints, requiredness and allowed values are defined by this schema."
          },
          "response_replay_available": {
            "type": "boolean",
            "description": "Response replay available for RequestReceipt. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "idempotency_key",
          "operation_id",
          "resource_id",
          "accepted_at",
          "response_replay_available"
        ],
        "additionalProperties": false,
        "description": "Durable acceptance reference survives expiry of the 24-hour response replay. Never execute accepted work again because a cached response expired."
      },
      "Healthcheck": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "degraded"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          }
        },
        "required": [
          "status"
        ],
        "additionalProperties": false
      },
      "ServiceStatus": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "operational",
              "degraded",
              "unavailable"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "As of for ServiceStatus. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "status",
          "as_of"
        ],
        "additionalProperties": false
      },
      "DataRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable identifier for this exact collected/enriched version. Use it in getDataRecord."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque ID within the authorized workspace and environment."
          },
          "connection_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Borrower connection that supplied this record; null for data derived without a single connection."
          },
          "integration_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Source integration identifier; null for data with no single provider."
          },
          "resource_type": {
            "type": "string",
            "minLength": 1,
            "description": "Normalized resource family, such as bank_transaction or invoice; matches normalized.object."
          },
          "resource_id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable logical record ID across successive versions."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Increasing version of the logical record; a new version has a new DataRecord id."
          },
          "ingested_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time this version became available from AMLOK."
          },
          "source_as_of": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "UTC source freshness time, null when the provider did not establish it."
          },
          "access": {
            "type": "string",
            "enum": [
              "available",
              "restricted",
              "deleted"
            ],
            "description": "Whether content is currently available, restricted or deleted."
          },
          "access_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Explanation when content cannot be returned; null for available data."
          },
          "normalized": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/NormalizedConnectionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedConsentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedSyncJobRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedBusinessRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedPersonRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRelationshipRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedVerificationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedVerificationCheckRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedScreeningMatchRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedDocumentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedBankAccountRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAccountBalanceRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedBankTransactionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRecurringStreamRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedIncomeObservationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedMerchantAccountRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedPaymentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedProcessorTransactionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedPayoutRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRefundRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedDisputeRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCounterpartyRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedOrderRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedOrderLineRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedSubscriptionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLedgerAccountRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedJournalRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedJournalLineRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedInvoiceRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedBillRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCreditNoteRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAccountingPaymentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedFinancialStatementRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedStatementLineRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedTaxObligationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedProductRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLocationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedInventoryBalanceRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedInventoryMovementRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedPurchaseOrderRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedShipmentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedProductionOrderRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedProjectRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedApplicationRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCreditFacilityRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLoanRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedInstallmentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRepaymentRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCollateralRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedGuaranteeRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedCovenantRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedDecisionRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLienSearchRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedLienRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedFilingEventRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAttributeRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRiskSnapshotRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedMonitorRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAlertRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedWorkflowRunRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedRequirementRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedAuditEventRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedReconciliationLinkRead"
                  },
                  {
                    "$ref": "#/components/schemas/NormalizedVerificationAssessment"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Typed normalized and enriched record including field-level provenance and missing-value reasons; null when unavailable."
          },
          "source_payload": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "not_retained",
                  "restricted",
                  "not_applicable"
                ]
              },
              "value": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Authorized provider-native business fields. Never credentials, cookies, tokens or unrelated borrower data. Field meanings are provider-specific; consult the provider documentation in Data Lookup."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Allowlisted provider-native underwriting fields. Same disclosure policy as normalized content: exclude credentials, tokens, secret URLs, raw biometric media/templates, unrelated cross-tenant identities, private social profiles and unnecessary protected attributes. Source licensing and purpose apply to all representations."
              },
              "reason": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "status",
              "value",
              "reason"
            ],
            "additionalProperties": false,
            "allOf": [
              {
                "if": {
                  "properties": {
                    "status": {
                      "const": "available"
                    }
                  }
                },
                "then": {
                  "properties": {
                    "value": {
                      "type": "object"
                    },
                    "reason": {
                      "type": "null"
                    }
                  }
                },
                "else": {
                  "properties": {
                    "value": {
                      "type": "null"
                    },
                    "reason": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            ],
            "description": "Source payload for DataRecord. Constraints, requiredness and allowed values are defined by this schema."
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque ID within the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Authorized source files or provider reports associated with this record."
          }
        },
        "required": [
          "id",
          "borrower_id",
          "connection_id",
          "integration_id",
          "resource_type",
          "resource_id",
          "record_version",
          "ingested_at",
          "source_as_of",
          "access",
          "access_reason",
          "normalized",
          "source_payload",
          "document_ids"
        ],
        "additionalProperties": false,
        "description": "One immutable version of a collected or derived record, available independently of underwriting. resource_id identifies its logical record; id identifies this exact version. Normalized object, id and record_version must match resource_type, resource_id and record_version. Available records include all authorized populated fields, enrichment fields and provenance. Restricted/deleted records retain only permitted metadata.",
        "allOf": [
          {
            "if": {
              "properties": {
                "access": {
                  "enum": [
                    "restricted",
                    "deleted"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "normalized": {
                  "type": "null"
                },
                "document_ids": {
                  "maxItems": 0
                },
                "access_reason": {
                  "type": "string",
                  "minLength": 1
                },
                "source_payload": {
                  "properties": {
                    "status": {
                      "const": "restricted"
                    },
                    "value": {
                      "type": "null"
                    },
                    "reason": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "access": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "access_reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "DataPage": {
        "type": "object",
        "properties": {
          "next_cursor": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Next cursor for DataPage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "has_more": {
            "type": "boolean",
            "description": "Has more for DataPage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque ID within the authorized workspace and environment."
          },
          "as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "As of for DataPage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "changes_cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Atomic change-feed position at snapshot creation, bound to the same borrower, filters and authorization. Save it; consume changes only after completing the snapshot pages."
          },
          "expires_at": {
            "type": "string",
            "minLength": 1,
            "description": "Snapshot expiry. After expiry, respond 410 and restart with a new snapshot; never continue on a new snapshot silently.",
            "format": "date-time"
          }
        },
        "required": [
          "next_cursor",
          "has_more",
          "snapshot_id",
          "as_of",
          "changes_cursor",
          "expires_at"
        ],
        "additionalProperties": false
      },
      "DataChange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable change notification ID for idempotent processing."
          },
          "type": {
            "type": "string",
            "enum": [
              "upsert",
              "removed",
              "access_changed"
            ],
            "description": "upsert supplies a record version; removed and access_changed require reconciliation of a prior local record."
          },
          "occurred_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time this change was committed to the data feed."
          },
          "record_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact DataRecord version to fetch; can be null for a removal or access restriction."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque ID within the authorized workspace and environment."
          },
          "resource_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque ID within the authorized workspace and environment."
          },
          "resource_type": {
            "type": "string",
            "minLength": 1,
            "description": "Resource type for DataChange. Constraints, requiredness and allowed values are defined by this schema."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonic resource version for event reconciliation."
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Reason for removal or access change when applicable."
          }
        },
        "required": [
          "id",
          "type",
          "occurred_at",
          "record_id",
          "borrower_id",
          "resource_id",
          "resource_type",
          "record_version",
          "reason"
        ],
        "additionalProperties": false,
        "description": "Ordered change notification for a logical record. upsert references an immutable DataRecord version. Removal and access changes can expose metadata only; purge affected local copies as required by the authorization/retention policy. Reading a feed never restores access.",
        "allOf": [
          {
            "if": {
              "properties": {
                "type": {
                  "const": "upsert"
                }
              }
            },
            "then": {
              "properties": {
                "record_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque ID within the authorized workspace and environment."
                }
              }
            },
            "else": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ]
      },
      "DataChangePage": {
        "type": "object",
        "properties": {
          "next_cursor": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Next cursor for DataChangePage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "has_more": {
            "type": "boolean",
            "description": "Has more for DataChangePage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "resume_cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Commit after applying the full batch. Present even for an empty page; pass as cursor for the next request."
          },
          "resume_expires_at": {
            "type": "string",
            "minLength": 1,
            "description": "Expiration of the returned resume cursor. Poll empty pages too and atomically advance the checkpoint.",
            "format": "date-time"
          }
        },
        "required": [
          "next_cursor",
          "has_more",
          "resume_cursor",
          "resume_expires_at"
        ],
        "additionalProperties": false
      },
      "BillingPayment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Funding payment or top-up attempt identifier; not a wallet ledger ID."
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Billing snapshot used for this representation."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the payment attempt was recorded."
          },
          "updated_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time its state most recently changed."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "succeeded",
              "failed",
              "cancelled",
              "partially_refunded",
              "refunded",
              "returned"
            ],
            "description": "Payment lifecycle status; only posted ledger entries change the wallet."
          },
          "purpose": {
            "type": "string",
            "enum": [
              "initial_funding",
              "renewal",
              "automatic_top_up",
              "manual_top_up"
            ],
            "description": "Initial/renewal contract funding or an automatic/manual top-up."
          },
          "amount": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Requested payment amount in CAD major units, as a two-decimal string."
          },
          "currency": {
            "const": "CAD",
            "description": "Currency for BillingPayment. Constraints, requiredness and allowed values are defined by this schema."
          },
          "credited_amount": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Total credits actually posted for this payment before subsequent reversals; zero until credit posting."
          },
          "refunded_amount": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Total payment refunds recorded as of this snapshot, in CAD."
          },
          "method": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "card",
                  "ach",
                  "bank_transfer"
                ]
              },
              "label": {
                "type": "string",
                "minLength": 1,
                "description": "Masked display label only; no card number, routing number, bank credentials or payment token."
              }
            },
            "required": [
              "type",
              "label"
            ],
            "additionalProperties": false,
            "description": "Method for BillingPayment. Constraints, requiredness and allowed values are defined by this schema."
          },
          "external_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Non-secret reconciliation reference from the payment system."
          },
          "settled_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "UTC settlement time; null before settlement or if payment failed."
          },
          "failure_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable failure or return explanation, when available."
          },
          "transaction_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque ID within the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Immutable wallet entries for credit posting and subsequent returns/refunds."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Monotonically increasing version of this resource. Compare with event.resource_version; snapshot reads preserve their historical version."
          }
        },
        "required": [
          "id",
          "snapshot_id",
          "created_at",
          "updated_at",
          "status",
          "purpose",
          "amount",
          "currency",
          "credited_amount",
          "refunded_amount",
          "method",
          "external_reference",
          "settled_at",
          "failure_reason",
          "transaction_ids",
          "record_version"
        ],
        "additionalProperties": false,
        "description": "Read-only payment/funding state as of snapshot_id. Pending, processing, failed and cancelled attempts do not increase credits. credited_amount is cumulative credit actually posted for this payment; later returns/refunds are linked negative transactions, not a rewrite of funding history.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "pending",
                    "processing",
                    "failed",
                    "cancelled"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "credited_amount": {
                  "const": "0.00"
                },
                "settled_at": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "failed"
                }
              }
            },
            "then": {
              "properties": {
                "failure_reason": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ]
      },
      "BillingUsage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable usage charge ID, also referenced by risk-package billing_usage_id."
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Billing snapshot used for this read."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque ID within the authorized workspace and environment."
          },
          "product": {
            "type": "string",
            "enum": [
              "insights",
              "signal"
            ],
            "description": "Insights underwriting or Signal monitoring; included stages are not separately billed."
          },
          "origination_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque ID within the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Charged origination for Insights; null for a Signal monthly charge."
          },
          "monitor_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque ID within the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Monitored deals represented by a combined Signal borrower/month charge."
          },
          "risk_package_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque ID within the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Published results associated with this charge."
          },
          "period": {
            "$ref": "#/components/schemas/Window",
            "description": "UTC half-open service interval for this usage."
          },
          "charged_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time the charge was posted."
          },
          "tier": {
            "type": "string",
            "enum": [
              "standard",
              "advanced",
              "complex"
            ],
            "description": "Historical workload tier determining the agreed unit rate."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "description": "Billed units for this immutable charge."
          },
          "unit_rate": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Actual effective CAD unit rate after two-decimal half-up rounding."
          },
          "amount": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Positive CAD cost: quantity times rounded unit_rate, rounded half-up to two decimals."
          },
          "currency": {
            "const": "CAD",
            "description": "Currency for BillingUsage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "rate_card_id": {
            "type": "string",
            "minLength": 1,
            "description": "Historical agreed rate-card reference."
          },
          "rate_version": {
            "type": "string",
            "minLength": 1,
            "description": "Exact historical pricing version, not the current rate."
          },
          "transaction_id": {
            "type": "string",
            "minLength": 1,
            "description": "Posted negative usage ledger entry for this charge."
          },
          "workload": {
            "type": "object",
            "properties": {
              "bank_accounts": {
                "type": "integer",
                "minimum": 0
              },
              "business_systems": {
                "type": "integer",
                "minimum": 0
              },
              "records": {
                "type": "integer",
                "minimum": 0
              },
              "record_counting_basis": {
                "type": "string",
                "enum": [
                  "per_underwriting",
                  "new_records_per_month"
                ]
              }
            },
            "required": [
              "bank_accounts",
              "business_systems",
              "records",
              "record_counting_basis"
            ],
            "additionalProperties": false,
            "description": "Counts used to explain the charged tier, distinct from the billed quantity."
          }
        },
        "required": [
          "id",
          "snapshot_id",
          "borrower_id",
          "product",
          "origination_id",
          "monitor_ids",
          "risk_package_ids",
          "period",
          "charged_at",
          "tier",
          "quantity",
          "unit_rate",
          "amount",
          "currency",
          "rate_card_id",
          "rate_version",
          "transaction_id",
          "workload"
        ],
        "additionalProperties": false,
        "description": "Immutable charge explanation. Amount is the positive cost; the linked ledger usage transaction is negative. Rates are the actual historical agreed rates, never current estimates. Signal is one borrower/workspace/month across all monitored deals; included reassessments add no Insights charge.",
        "allOf": [
          {
            "if": {
              "properties": {
                "product": {
                  "const": "insights"
                }
              }
            },
            "then": {
              "properties": {
                "origination_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque ID within the authorized workspace and environment."
                },
                "workload": {
                  "properties": {
                    "record_counting_basis": {
                      "const": "per_underwriting"
                    }
                  }
                }
              }
            },
            "else": {
              "properties": {
                "origination_id": {
                  "type": "null"
                },
                "workload": {
                  "properties": {
                    "record_counting_basis": {
                      "const": "new_records_per_month"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "DealPerformance": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "current",
              "delinquent",
              "defaulted",
              "paid_off",
              "charged_off"
            ],
            "description": "Current lifecycle state. See the product lifecycle and recovery guides."
          },
          "days_past_due": {
            "type": "integer",
            "minimum": 0,
            "description": "Days past due for DealPerformance. Constraints, requiredness and allowed values are defined by this schema."
          },
          "amount_past_due": {
            "$ref": "#/components/schemas/Money",
            "description": "Amount past due for DealPerformance. Constraints, requiredness and allowed values are defined by this schema."
          },
          "next_payment_due_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Next payment due at for DealPerformance. Constraints, requiredness and allowed values are defined by this schema."
          },
          "last_payment_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "UTC timestamp in RFC 3339 format.",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Last payment at for DealPerformance. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "status",
          "days_past_due",
          "amount_past_due",
          "next_payment_due_at",
          "last_payment_at"
        ],
        "additionalProperties": false,
        "description": "Lender-reported performance, not an AMLOK servicing command. Currency must match the deal. Unknown values cannot be fabricated; omit performance entirely (null) when unavailable."
      },
      "DealSnapshotInput": {
        "type": "object",
        "properties": {
          "previous_snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Current monitor.latest_deal_snapshot_id; atomically compared before acceptance."
          },
          "effective_at": {
            "type": "string",
            "minLength": 1,
            "description": "Lender as-of time; must be later than the current snapshot and no later than server acceptance time.",
            "format": "date-time"
          },
          "deal": {
            "$ref": "#/components/schemas/Deal",
            "description": "Deal for DealSnapshotInput. Constraints, requiredness and allowed values are defined by this schema."
          },
          "performance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DealPerformance"
              },
              {
                "type": "null"
              }
            ],
            "description": "Performance for DealSnapshotInput. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "previous_snapshot_id",
          "effective_at",
          "deal",
          "performance"
        ],
        "additionalProperties": false,
        "description": "Complete replacement input for future evaluations, stored as a new immutable record. Same borrower, institution_reference, currency, funded_at and funded_amount as enrollment; amendments to outstanding balance, maturity and terms are permitted. No backdating or mutation of past assessments."
      },
      "DealSnapshot": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier in the authorized workspace and environment."
          },
          "monitor_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier in the authorized workspace and environment."
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier in the authorized workspace and environment."
          },
          "previous_snapshot_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Opaque identifier in the authorized workspace and environment."
              },
              {
                "type": "null"
              }
            ],
            "description": "Previous snapshot id for DealSnapshot. Constraints, requiredness and allowed values are defined by this schema."
          },
          "sequence": {
            "type": "integer",
            "minimum": 1,
            "description": "1 for enrollment; strictly increments for each accepted snapshot."
          },
          "record_version": {
            "type": "integer",
            "const": 1,
            "description": "Monotonic resource version for event reconciliation."
          },
          "effective_at": {
            "type": "string",
            "minLength": 1,
            "description": "UTC timestamp in RFC 3339 format.",
            "format": "date-time"
          },
          "received_at": {
            "type": "string",
            "minLength": 1,
            "description": "UTC timestamp in RFC 3339 format.",
            "format": "date-time"
          },
          "deal": {
            "$ref": "#/components/schemas/Deal",
            "description": "Deal for DealSnapshot. Constraints, requiredness and allowed values are defined by this schema."
          },
          "performance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DealPerformance"
              },
              {
                "type": "null"
              }
            ],
            "description": "Performance for DealSnapshot. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "monitor_id",
          "borrower_id",
          "previous_snapshot_id",
          "sequence",
          "record_version",
          "effective_at",
          "received_at",
          "deal",
          "performance"
        ],
        "additionalProperties": false
      },
      "OperationalProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier for this OperationalProfile record."
          },
          "version": {
            "type": "string",
            "minLength": 1,
            "description": "Version for OperationalProfile. Constraints, requiredness and allowed values are defined by this schema."
          },
          "max_json_bytes": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured max json bytes."
          },
          "max_upload_bytes": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured max upload bytes."
          },
          "max_document_pages": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured max document pages."
          },
          "allowed_document_mime_types": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Allowed document mime types for OperationalProfile. Constraints, requiredness and allowed values are defined by this schema."
          },
          "document_types": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Document types for OperationalProfile. Constraints, requiredness and allowed values are defined by this schema."
          },
          "session_ttl_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured session ttl seconds."
          },
          "download_ttl_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured download ttl seconds."
          },
          "snapshot_ttl_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured snapshot ttl seconds."
          },
          "data_feed_retention_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured data feed retention seconds."
          },
          "event_retention_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured event retention seconds."
          },
          "export_retention_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured export retention seconds."
          },
          "poll_min_interval_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured poll min interval seconds."
          },
          "poll_max_interval_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured poll max interval seconds."
          },
          "webhook_timeout_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured webhook timeout seconds."
          },
          "webhook_max_body_bytes": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured webhook max body bytes."
          },
          "webhook_rotation_overlap_seconds": {
            "type": "integer",
            "minimum": 1,
            "description": "Effective configured webhook rotation overlap seconds."
          },
          "rate_limits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "group": {
                  "type": "string",
                  "enum": [
                    "reads",
                    "commands",
                    "uploads"
                  ]
                },
                "requests": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Allowed requests across all keys in the workspace/environment."
                },
                "window_seconds": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Rolling window length in seconds."
                }
              },
              "required": [
                "group",
                "requests",
                "window_seconds"
              ],
              "additionalProperties": false
            },
            "description": "Rate limits for OperationalProfile. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "version",
          "max_json_bytes",
          "max_upload_bytes",
          "max_document_pages",
          "allowed_document_mime_types",
          "document_types",
          "session_ttl_seconds",
          "download_ttl_seconds",
          "snapshot_ttl_seconds",
          "data_feed_retention_seconds",
          "event_retention_seconds",
          "export_retention_seconds",
          "poll_min_interval_seconds",
          "poll_max_interval_seconds",
          "webhook_timeout_seconds",
          "webhook_max_body_bytes",
          "webhook_rotation_overlap_seconds",
          "rate_limits"
        ],
        "additionalProperties": false,
        "description": "Effective environment settings, required before accepting traffic. Example values are a development test profile, not production capacity or an SLA. profile id/version freezes interpretation; lifetime fields apply to newly issued resources."
      },
      "HubVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier in the authorized workspace and environment."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name for HubVersion. Constraints, requiredness and allowed values are defined by this schema."
          },
          "integration_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Opaque identifier in the authorized workspace and environment."
            },
            "uniqueItems": true,
            "description": "Identifiers of the associated authorized records."
          },
          "consent_purposes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "credit_assessment",
                "continuous_monitoring"
              ]
            },
            "minItems": 1,
            "uniqueItems": true,
            "description": "Consent purposes for HubVersion. Constraints, requiredness and allowed values are defined by this schema."
          },
          "allowed_embed_origins": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "format": "uri"
            },
            "description": "Allowed embed origins for HubVersion. Constraints, requiredness and allowed values are defined by this schema."
          },
          "allowed_return_urls": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "format": "uri"
            },
            "description": "Allowed return urls for HubVersion. Constraints, requiredness and allowed values are defined by this schema."
          },
          "hub_origin": {
            "type": "string",
            "minLength": 1,
            "format": "uri",
            "description": "Hub origin for HubVersion. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "id",
          "name",
          "integration_ids",
          "consent_purposes",
          "allowed_embed_origins",
          "allowed_return_urls",
          "hub_origin"
        ],
        "additionalProperties": false,
        "description": "Published console configuration visible to this key; origins are exact matches, return URLs match scheme/authority/path and configured query. Fragments and credentials are forbidden."
      },
      "HubMessage": {
        "type": "object",
        "properties": {
          "protocol_version": {
            "const": "1",
            "description": "Protocol version for HubMessage. Constraints, requiredness and allowed values are defined by this schema."
          },
          "event_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier in the authorized workspace and environment."
          },
          "session_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque identifier in the authorized workspace and environment."
          },
          "type": {
            "type": "string",
            "enum": [
              "amlok.hub.ready",
              "amlok.hub.completed",
              "amlok.hub.cancelled",
              "amlok.hub.expired",
              "amlok.hub.failed"
            ],
            "description": "Type for HubMessage. Constraints, requiredness and allowed values are defined by this schema."
          }
        },
        "required": [
          "protocol_version",
          "event_id",
          "session_id",
          "type"
        ],
        "additionalProperties": false,
        "description": "Browser postMessage envelope. Contains no credentials, financial data, provider URLs or consent proof. Parent must verify event.origin and event.source then fetch session through its authenticated backend."
      },
      "EvidenceLocation": {
        "type": "object",
        "properties": {
          "evidence_id": {
            "type": "string",
            "minLength": 1
          },
          "field_path": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "RFC 6901 JSON pointer into the frozen evidence record."
              },
              {
                "type": "null"
              }
            ]
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "page": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "quote": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Short permitted excerpt, with sensitive information minimized."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "evidence_id",
          "field_path",
          "document_id",
          "page",
          "quote"
        ],
        "additionalProperties": false,
        "description": "Evidence belongs to this package evidence_set. Page is one-based; document_id is required whenever page is present.",
        "allOf": [
          {
            "if": {
              "properties": {
                "page": {
                  "type": "integer"
                }
              }
            },
            "then": {
              "properties": {
                "document_id": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ]
      },
      "CalculationInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "unit": {
            "type": "string",
            "minLength": 1
          },
          "currency": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{3}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "basis": {
            "type": "string",
            "enum": [
              "observed",
              "declared",
              "derived",
              "estimated"
            ]
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          }
        },
        "required": [
          "name",
          "value",
          "unit",
          "currency",
          "basis",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "A numeric input to the exact calculation. Declared and estimated inputs remain distinguishable from observed values. Null input values cannot support an available metric."
      },
      "MetricObservation": {
        "type": "object",
        "properties": {
          "window": {
            "$ref": "#/components/schemas/Window"
          },
          "status": {
            "type": "string",
            "enum": [
              "available",
              "unavailable"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          }
        },
        "required": [
          "window",
          "status",
          "value",
          "reason",
          "evidence_ids"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "reason": {
                  "type": "null"
                },
                "evidence_ids": {
                  "minItems": 1
                }
              }
            },
            "else": {
              "properties": {
                "value": {
                  "type": "null"
                },
                "reason": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ]
      },
      "RiskMetricDefinition": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1
          },
          "dimension_key": {
            "type": "string",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string",
            "minLength": 1
          },
          "unit": {
            "type": "string",
            "minLength": 1
          },
          "formula": {
            "type": "string",
            "minLength": 1
          },
          "required_inputs": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "minItems": 1
          },
          "eligibility": {
            "type": "string",
            "minLength": 1
          },
          "borrower_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "business",
                "person"
              ]
            },
            "minItems": 1
          },
          "source_families": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "definition_version": {
            "const": "2026-11-06.1"
          },
          "calculation_version": {
            "type": "string",
            "minLength": 1
          },
          "window_rule": {
            "type": "string",
            "minLength": 1
          },
          "unavailable_rule": {
            "type": "string",
            "minLength": 1
          },
          "interpretation": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "key",
          "dimension_key",
          "label",
          "description",
          "unit",
          "formula",
          "required_inputs",
          "eligibility",
          "borrower_types",
          "source_families",
          "definition_version",
          "calculation_version",
          "window_rule",
          "unavailable_rule",
          "interpretation"
        ],
        "additionalProperties": false
      },
      "AssessmentScope": {
        "type": "object",
        "properties": {
          "borrower_type": {
            "type": "string",
            "enum": [
              "business",
              "person"
            ]
          },
          "market": {
            "type": "string",
            "enum": [
              "US",
              "CA"
            ]
          },
          "reporting_currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$"
          },
          "window": {
            "$ref": "#/components/schemas/Window"
          },
          "account_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "entity_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "consolidation": {
            "type": "string",
            "enum": [
              "single_entity",
              "consolidated",
              "individual",
              "joint"
            ]
          },
          "accounting_basis": {
            "type": "string",
            "enum": [
              "cash",
              "accrual",
              "mixed"
            ]
          },
          "coverage_basis": {
            "type": "string",
            "enum": [
              "observed_sources",
              "declared_sources_reconciled"
            ]
          },
          "excluded_sources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "source_id": {
                  "type": "string",
                  "minLength": 1
                },
                "reason": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "source_id",
                "reason"
              ],
              "additionalProperties": false
            }
          },
          "fx_rates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "from_currency": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^[A-Z]{3}$"
                },
                "to_currency": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^[A-Z]{3}$"
                },
                "rate": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "as_of": {
                  "type": "string",
                  "minLength": 1,
                  "format": "date-time"
                },
                "source": {
                  "type": "string",
                  "minLength": 1
                },
                "evidence_ids": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uniqueItems": true
                }
              },
              "required": [
                "from_currency",
                "to_currency",
                "rate",
                "as_of",
                "source",
                "evidence_ids"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "borrower_type",
          "market",
          "reporting_currency",
          "window",
          "account_ids",
          "entity_ids",
          "consolidation",
          "accounting_basis",
          "coverage_basis",
          "excluded_sources",
          "fx_rates"
        ],
        "additionalProperties": false,
        "description": "Assessment boundaries. Observed sources do not establish all external accounts. FX rates must be positive and evidenced; never sum unlike currencies. Joint assessments require authorized related borrowers and explicit allocation."
      },
      "RiskFinding": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "code": {
            "type": "string",
            "minLength": 1
          },
          "dimension_key": {
            "type": "string",
            "enum": [
              "identity",
              "ownership_and_control",
              "cashflow",
              "liquidity",
              "revenue_quality",
              "profitability",
              "working_capital",
              "leverage",
              "repayment_capacity",
              "concentration",
              "collateral",
              "fraud_and_consistency",
              "income_and_affordability",
              "income_stability",
              "payment_behavior",
              "credit_history",
              "commerce_performance",
              "operating_resilience",
              "tax_and_compliance",
              "financial_reporting_quality",
              "data_quality",
              "forecasting_and_stress",
              "relationship_risk",
              "monitoring_change"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "info",
              "warning",
              "critical"
            ]
          },
          "nature": {
            "type": "string",
            "enum": [
              "observation",
              "calculation",
              "inconsistency",
              "suspected_anomaly",
              "model_output"
            ]
          },
          "summary": {
            "type": "string",
            "minLength": 1
          },
          "explanation": {
            "type": "string",
            "minLength": 1
          },
          "metric_keys": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          }
        },
        "required": [
          "id",
          "code",
          "dimension_key",
          "severity",
          "nature",
          "summary",
          "explanation",
          "metric_keys",
          "evidence",
          "limitations"
        ],
        "additionalProperties": false,
        "description": "Reviewable finding with source locations. Suspicion is not confirmed fraud; severity is not a probability of default."
      },
      "VerificationCheck": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "x-field-id": "VERIFY:VerificationCheck.id",
            "description": "Id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "check": {
            "type": "string",
            "enum": [
              "identity",
              "account_ownership",
              "business_registration",
              "beneficial_ownership",
              "document_authenticity",
              "income_verification",
              "credit_report_match",
              "lien",
              "tax_filing"
            ],
            "x-field-id": "VERIFY:VerificationCheck.check",
            "description": "Check. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "x-field-id": "VERIFY:VerificationCheck.subject_id",
            "description": "Subject id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "result": {
            "type": "string",
            "enum": [
              "matched",
              "not_matched",
              "inconclusive",
              "not_checked"
            ],
            "x-field-id": "VERIFY:VerificationCheck.result",
            "description": "Result. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "provider": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationCheck.provider",
            "description": "Provider. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationCheck.observed_at",
            "description": "Observed at. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "explanation": {
            "type": "string",
            "minLength": 1,
            "x-field-id": "VERIFY:VerificationCheck.explanation",
            "description": "Explanation. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "x-field-id": "VERIFY:VerificationCheck.evidence",
            "description": "Exact evidence records and source-document locations."
          }
        },
        "required": [
          "id",
          "check",
          "subject_id",
          "result",
          "provider",
          "observed_at",
          "explanation",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "Provider and observation context remain visible. Inconclusive, not checked and no matching record must never become a verified pass."
      },
      "FinancialStatement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "enum": [
              "income_statement",
              "balance_sheet",
              "cash_flow"
            ]
          },
          "window": {
            "$ref": "#/components/schemas/Window"
          },
          "as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "basis": {
            "type": "string",
            "enum": [
              "cash",
              "accrual"
            ]
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$"
          },
          "consolidation": {
            "type": "string",
            "minLength": 1
          },
          "lines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "minLength": 1
                },
                "label": {
                  "type": "string",
                  "minLength": 1
                },
                "amount": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "parent_key": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "is_subtotal": {
                  "type": "boolean"
                },
                "evidence": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EvidenceLocation"
                  },
                  "minItems": 1
                }
              },
              "required": [
                "key",
                "label",
                "amount",
                "parent_key",
                "is_subtotal",
                "evidence"
              ],
              "additionalProperties": false
            },
            "minItems": 1
          },
          "adjustments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "line_key": {
                  "type": "string",
                  "minLength": 1
                },
                "amount": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "evidence": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EvidenceLocation"
                  },
                  "minItems": 1
                }
              },
              "required": [
                "line_key",
                "amount",
                "reason",
                "evidence"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "kind",
          "window",
          "as_of",
          "basis",
          "currency",
          "consolidation",
          "lines",
          "adjustments"
        ],
        "additionalProperties": false,
        "description": "Normalized statements with hierarchy and sourced adjustments. Do not sum both a subtotal and its children. Adjustments never overwrite source statements."
      },
      "DebtObligation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "creditor_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "type": "string",
            "enum": [
              "term_loan",
              "revolving",
              "lease",
              "mortgage",
              "trade",
              "tax",
              "other"
            ]
          },
          "basis": {
            "type": "string",
            "enum": [
              "observed",
              "declared",
              "inferred"
            ]
          },
          "proposed": {
            "type": "boolean"
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$"
          },
          "outstanding": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "limit": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "annual_rate": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "maturity_date": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ]
          },
          "secured": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "payment_schedule": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "due_at": {
                  "type": "string",
                  "minLength": 1,
                  "format": "date-time"
                },
                "principal": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "interest": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "fees": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "balloon": {
                  "type": "boolean"
                }
              },
              "required": [
                "due_at",
                "principal",
                "interest",
                "fees",
                "balloon"
              ],
              "additionalProperties": false
            }
          },
          "coverage": {
            "type": "string",
            "enum": [
              "complete",
              "partial"
            ]
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          }
        },
        "required": [
          "id",
          "creditor_reference",
          "kind",
          "basis",
          "proposed",
          "currency",
          "outstanding",
          "limit",
          "annual_rate",
          "maturity_date",
          "secured",
          "payment_schedule",
          "coverage",
          "missing_fields",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "Resolved obligations and exact required payments, including proposed exposure. Inferred recurring debits do not prove outstanding principal, contract rate or complete liabilities. Schedules use stated currency; rate is a fraction."
      },
      "IncomeStream": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "enum": [
              "employment",
              "self_employment",
              "benefit",
              "pension",
              "rental",
              "other"
            ]
          },
          "payer_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "basis": {
            "type": "string",
            "enum": [
              "observed",
              "declared",
              "estimated"
            ]
          },
          "gross_monthly": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "net_monthly": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$"
          },
          "cadence": {
            "type": "string",
            "enum": [
              "weekly",
              "biweekly",
              "semimonthly",
              "monthly",
              "irregular"
            ]
          },
          "first_observed_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "last_observed_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "verification": {
            "type": "string",
            "enum": [
              "verified",
              "partially_verified",
              "unverified"
            ]
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          }
        },
        "required": [
          "id",
          "kind",
          "payer_reference",
          "basis",
          "gross_monthly",
          "net_monthly",
          "currency",
          "cadence",
          "first_observed_at",
          "last_observed_at",
          "verification",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "Independent gross and net income evidence. Deposits alone establish neither pretax income nor an employment relationship. Monthly conversion: weekly \u00d752/12, biweekly \u00d726/12, semimonthly \u00d72; disclose irregular-period method."
      },
      "Reconciliation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "left_source": {
            "type": "string",
            "minLength": 1
          },
          "right_source": {
            "type": "string",
            "minLength": 1
          },
          "window": {
            "$ref": "#/components/schemas/Window"
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$"
          },
          "left_total": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "right_total": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "adjustments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "fees",
                    "refunds",
                    "tax",
                    "timing",
                    "fx",
                    "other"
                  ]
                },
                "amount": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                },
                "evidence": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EvidenceLocation"
                  },
                  "minItems": 1
                }
              },
              "required": [
                "kind",
                "amount",
                "explanation",
                "evidence"
              ],
              "additionalProperties": false
            }
          },
          "adjusted_left_total": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "residual": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "tolerance": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "result": {
            "type": "string",
            "enum": [
              "matched",
              "unmatched",
              "inconclusive"
            ]
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          }
        },
        "required": [
          "id",
          "left_source",
          "right_source",
          "window",
          "currency",
          "left_total",
          "right_total",
          "adjustments",
          "adjusted_left_total",
          "residual",
          "tolerance",
          "result",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "Bridge: adjusted_left_total = left_total + signed adjustments; residual = adjusted_left_total - right_total. Matched requires abs(residual) <= nonnegative tolerance plus complete comparable populations. Differences are not automatically fraud."
      },
      "ConcentrationSegment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "enum": [
              "customer",
              "supplier",
              "income_source",
              "channel",
              "geography",
              "currency"
            ]
          },
          "window": {
            "$ref": "#/components/schemas/Window"
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$"
          },
          "total": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "unallocated_amount": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "buckets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "reference": {
                  "type": "string",
                  "minLength": 1
                },
                "amount": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "share": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "evidence_ids": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uniqueItems": true
                }
              },
              "required": [
                "reference",
                "amount",
                "share",
                "evidence_ids"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "kind",
          "window",
          "currency",
          "total",
          "unallocated_amount",
          "buckets"
        ],
        "additionalProperties": false,
        "description": "Buckets plus unallocated_amount reconcile to total. Shares use the same positive denominator. Pseudonymous counterparties are limited to the authorized borrower scope; no unrelated customer data."
      },
      "RiskProjection": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "enum": [
              "baseline",
              "stress"
            ]
          },
          "method": {
            "type": "string",
            "enum": [
              "deterministic",
              "statistical"
            ]
          },
          "model_version": {
            "type": "string",
            "minLength": 1
          },
          "horizon": {
            "$ref": "#/components/schemas/Window"
          },
          "assumptions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "parameter": {
                  "type": "string",
                  "minLength": 1
                },
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "unit": {
                  "type": "string",
                  "minLength": 1
                },
                "rationale": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "parameter",
                "value",
                "unit",
                "rationale"
              ],
              "additionalProperties": false
            },
            "minItems": 1
          },
          "metric_key": {
            "type": "string",
            "minLength": 1
          },
          "unit": {
            "type": "string",
            "minLength": 1
          },
          "currency": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{3}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "observations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetricObservation"
            },
            "minItems": 1
          },
          "interval": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "level": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "calibration_reference": {
                    "type": "string",
                    "minLength": 1
                  },
                  "lower": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                  },
                  "upper": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                  }
                },
                "required": [
                  "level",
                  "method",
                  "calibration_reference",
                  "lower",
                  "upper"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          }
        },
        "required": [
          "id",
          "kind",
          "method",
          "model_version",
          "horizon",
          "assumptions",
          "metric_key",
          "unit",
          "currency",
          "observations",
          "interval",
          "limitations"
        ],
        "additionalProperties": false,
        "description": "Conditional forecast under explicit parameter assumptions, not a promise or default probability. A statistical interval needs calibration evidence; a deterministic stress range is not a confidence interval. Each output identifies its horizon, currency and unit.",
        "allOf": [
          {
            "if": {
              "properties": {
                "method": {
                  "const": "deterministic"
                }
              }
            },
            "then": {
              "properties": {
                "interval": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "unit": {
                  "const": "currency"
                }
              }
            },
            "then": {
              "properties": {
                "currency": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^[A-Z]{3}$"
                }
              }
            },
            "else": {
              "properties": {
                "currency": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "RiskBenchmark": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "metric_key": {
            "type": "string",
            "minLength": 1
          },
          "cohort": {
            "type": "object",
            "properties": {
              "market": {
                "type": "string",
                "enum": [
                  "US",
                  "CA"
                ]
              },
              "industry": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "borrower_type": {
                "type": "string",
                "enum": [
                  "business",
                  "person"
                ]
              },
              "size_band": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "period": {
                "$ref": "#/components/schemas/Window"
              },
              "sample_size": {
                "type": "integer",
                "minimum": 1
              },
              "source": {
                "type": "string",
                "minLength": 1
              },
              "methodology_version": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "market",
              "industry",
              "borrower_type",
              "size_band",
              "period",
              "sample_size",
              "source",
              "methodology_version"
            ],
            "additionalProperties": false
          },
          "percentile": {
            "type": "string",
            "minLength": 1,
            "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          }
        },
        "required": [
          "id",
          "metric_key",
          "cohort",
          "percentile",
          "limitations"
        ],
        "additionalProperties": false,
        "description": "Only an entitled, relevant, documented cohort can yield a percentile. No invented peers, universal cutoffs or source-free industry rankings."
      },
      "RiskModelOutput": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "enum": [
              "probability_of_default",
              "loss_given_default",
              "expected_loss",
              "provider_score"
            ]
          },
          "value": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "unit": {
            "type": "string",
            "enum": [
              "ratio",
              "currency",
              "score"
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{3}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "model_version": {
            "type": "string",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "minLength": 1
          },
          "target_definition": {
            "type": "string",
            "minLength": 1
          },
          "horizon_months": {
            "type": "integer",
            "minimum": 1
          },
          "population": {
            "type": "string",
            "minLength": 1
          },
          "market": {
            "type": "string",
            "enum": [
              "US",
              "CA"
            ]
          },
          "validation_reference": {
            "type": "string",
            "minLength": 1
          },
          "calibration_as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "minItems": 1
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          }
        },
        "required": [
          "id",
          "kind",
          "value",
          "unit",
          "currency",
          "model_version",
          "provider",
          "target_definition",
          "horizon_months",
          "population",
          "market",
          "validation_reference",
          "calibration_as_of",
          "reason_codes",
          "limitations"
        ],
        "additionalProperties": false,
        "description": "Only entitled, validated outputs applicable to this borrower/population. Provider scores retain their original model and scale. Never substitute a heuristic or deterministic scenario for a calibrated PD/LGD. Score scale and target are documented by validation_reference.",
        "allOf": [
          {
            "if": {
              "properties": {
                "kind": {
                  "enum": [
                    "probability_of_default",
                    "loss_given_default"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "ratio"
                },
                "currency": {
                  "type": "null"
                },
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "kind": {
                  "const": "expected_loss"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "currency"
                },
                "currency": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^[A-Z]{3}$"
                },
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "kind": {
                  "const": "provider_score"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "score"
                },
                "currency": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "RiskChange": {
        "type": "object",
        "properties": {
          "metric_key": {
            "type": "string",
            "minLength": 1
          },
          "previous_package_id": {
            "type": "string",
            "minLength": 1
          },
          "comparable": {
            "type": "boolean"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "previous_value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "absolute_delta": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "relative_delta": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          }
        },
        "required": [
          "metric_key",
          "previous_package_id",
          "comparable",
          "reason",
          "previous_value",
          "current_value",
          "absolute_delta",
          "relative_delta",
          "evidence_ids"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "comparable": {
                  "const": false
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "absolute_delta": {
                  "type": "null"
                },
                "relative_delta": {
                  "type": "null"
                }
              }
            },
            "else": {
              "properties": {
                "previous_value": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "current_value": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "absolute_delta": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                },
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ],
        "description": "Only compare compatible calculation versions, scope, units, currency, observation windows and evidence quality. relative_delta is null with zero/nonpositive baseline; absolute_delta remains numeric when valid."
      },
      "CollateralAsset": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "enum": [
              "property",
              "equipment",
              "inventory",
              "receivables",
              "cash",
              "investment",
              "other"
            ]
          },
          "owner_subject_id": {
            "type": "string",
            "minLength": 1
          },
          "ownership_share": {
            "type": "string",
            "minLength": 1,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$"
          },
          "valuation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "valuation_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "valuation_method": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "eligible_value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "haircut": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "liens": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "holder_reference": {
                  "type": "string",
                  "minLength": 1
                },
                "priority": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": 1
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "amount": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "reported",
                    "verified",
                    "released",
                    "disputed"
                  ]
                }
              },
              "required": [
                "holder_reference",
                "priority",
                "amount",
                "status"
              ],
              "additionalProperties": false
            }
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          }
        },
        "required": [
          "id",
          "kind",
          "owner_subject_id",
          "ownership_share",
          "currency",
          "valuation",
          "valuation_at",
          "valuation_method",
          "eligible_value",
          "haircut",
          "liens",
          "limitations",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "Dated asset valuation, ownership and encumbrance evidence. Eligible value is a justified assessment, not an enforceability guarantee. Unknown liens or stale valuations are explicit limitations; do not report zero liens from an absent search."
      },
      "BorrowerRelationship": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "from_subject_id": {
            "type": "string",
            "minLength": 1
          },
          "to_reference": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "enum": [
              "owner",
              "controller",
              "guarantor",
              "related_party",
              "customer",
              "supplier"
            ]
          },
          "ownership_share": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "valid_as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "basis": {
            "type": "string",
            "enum": [
              "verified",
              "declared",
              "inferred"
            ]
          },
          "explanation": {
            "type": "string",
            "minLength": 1
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          }
        },
        "required": [
          "id",
          "from_subject_id",
          "to_reference",
          "kind",
          "ownership_share",
          "valid_as_of",
          "basis",
          "explanation",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "An authorized borrower relationship with its basis and observation date. IDs are scoped references; an inferred relationship is never represented as verified ownership. No unrelated institution identity graph."
      },
      "CreditReportAssessment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "minLength": 1
          },
          "report_type": {
            "type": "string",
            "minLength": 1
          },
          "market": {
            "type": "string",
            "enum": [
              "US",
              "CA"
            ]
          },
          "pulled_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "subject_match": {
            "type": "string",
            "enum": [
              "matched",
              "inconclusive",
              "not_matched"
            ]
          },
          "report_document_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "score": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                  },
                  "minimum": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                  },
                  "maximum": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                  },
                  "higher_is": {
                    "type": "string",
                    "enum": [
                      "lower_risk",
                      "higher_risk"
                    ]
                  },
                  "model": {
                    "type": "string",
                    "minLength": 1
                  },
                  "reason_codes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                },
                "required": [
                  "value",
                  "minimum",
                  "maximum",
                  "higher_is",
                  "model",
                  "reason_codes"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "obligation_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "disputes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "coverage_notes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          }
        },
        "required": [
          "id",
          "provider",
          "report_type",
          "market",
          "pulled_at",
          "subject_match",
          "report_document_id",
          "score",
          "obligation_ids",
          "disputes",
          "coverage_notes",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "Entitled matched bureau evidence retains provider/model/score scale, pull date and disputes. A missing report is unavailable, not a clean credit record. No cross-model score averaging. Linked obligations are resolved without double-counting."
      },
      "TaxObligation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "jurisdiction": {
            "type": "string",
            "minLength": 1
          },
          "tax_type": {
            "type": "string",
            "minLength": 1
          },
          "period": {
            "$ref": "#/components/schemas/Window"
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[A-Z]{3}$"
          },
          "basis": {
            "type": "string",
            "enum": [
              "declared",
              "filed",
              "assessed"
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "paid_amount": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "due_date": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ]
          },
          "filing_status": {
            "type": "string",
            "enum": [
              "filed",
              "not_filed",
              "unknown"
            ]
          },
          "payment_status": {
            "type": "string",
            "enum": [
              "paid",
              "partially_paid",
              "unpaid",
              "unknown"
            ]
          },
          "disputed": {
            "type": "boolean"
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceLocation"
            },
            "minItems": 1
          }
        },
        "required": [
          "id",
          "jurisdiction",
          "tax_type",
          "period",
          "currency",
          "basis",
          "amount",
          "paid_amount",
          "due_date",
          "filing_status",
          "payment_status",
          "disputed",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "Separate tax declaration, filing, assessment and payment evidence. Unknown records cannot establish compliance or arrears. Duplicate tax obligations already in the debt schedule are linked in evidence rather than charged twice."
      },
      "VerificationCheckSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationCheckSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationCheckSection.reason",
            "description": "Explicit explanation code when no complete usable value is available."
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true,
            "x-field-id": "VERIFY:VerificationCheckSection.evidence_ids",
            "description": "Evidence ids. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationCheck"
            },
            "x-field-id": "VERIFY:VerificationCheckSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for verifications. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "FinancialStatementSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialStatement"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for financial statements. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "DebtObligationSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DebtObligation"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for obligations. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "IncomeStreamSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncomeStream"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for income streams. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "ReconciliationSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Reconciliation"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for reconciliations. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "ConcentrationSegmentSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcentrationSegment"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for concentrations. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "RiskProjectionSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RiskProjection"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for projections. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "RiskBenchmarkSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RiskBenchmark"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for benchmarks. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "RiskModelOutputSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RiskModelOutput"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for model outputs. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "RiskChangeSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RiskChange"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for changes. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "CollateralAssetSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CollateralAsset"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for collateral. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "BorrowerRelationshipSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BorrowerRelationship"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for relationships. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "CreditReportAssessmentSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreditReportAssessment"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for credit reports. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "TaxObligationSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxObligation"
            }
          }
        },
        "required": [
          "status",
          "reason",
          "evidence_ids",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coverage and results for tax obligations. Empty unavailable/not_applicable sections carry an explicit reason. Partial results must identify their limitation; an empty list alone never means a clean assessment.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "maxItems": 0
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "items": {
                  "minItems": 1
                }
              }
            }
          }
        ]
      },
      "VerificationReason": {
        "type": "string",
        "enum": [
          "not_requested",
          "not_started",
          "pending",
          "source_error",
          "no_data",
          "not_supported",
          "restricted",
          "not_applicable",
          "partial_coverage",
          "unresolved_match",
          "conflicting_evidence",
          "not_provided"
        ]
      },
      "VerificationEvidence": {
        "type": "object",
        "properties": {
          "evidence_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact frozen evidence ID; null only when a DataRecord reference provides provenance.",
            "x-field-id": "VERIFY:VerificationEvidence.evidence_id"
          },
          "data_record_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact immutable data-record version; not a mutable logical resource ID.",
            "x-field-id": "VERIFY:VerificationEvidence.data_record_id"
          },
          "source_path": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "RFC 6901 pointer into the permitted source payload, preserving its original field path.",
            "x-field-id": "VERIFY:VerificationEvidence.source_path"
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "AMLOK document ID for an authorized source report or file.",
            "x-field-id": "VERIFY:VerificationEvidence.document_id"
          },
          "page": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "One-based source PDF page; requires document_id.",
            "x-field-id": "VERIFY:VerificationEvidence.page"
          }
        },
        "required": [
          "evidence_id",
          "data_record_id",
          "source_path",
          "document_id",
          "page"
        ],
        "additionalProperties": false,
        "anyOf": [
          {
            "properties": {
              "evidence_id": {
                "type": "string",
                "minLength": 1,
                "x-field-id": "VERIFY:VerificationEvidence.evidence_id",
                "description": "Evidence id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
              }
            }
          },
          {
            "properties": {
              "data_record_id": {
                "type": "string",
                "minLength": 1,
                "x-field-id": "VERIFY:VerificationEvidence.data_record_id",
                "description": "Data record id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
              }
            }
          }
        ],
        "allOf": [
          {
            "if": {
              "properties": {
                "page": {
                  "type": "integer"
                }
              }
            },
            "then": {
              "properties": {
                "document_id": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ]
      },
      "VerificationProvenance": {
        "type": "object",
        "properties": {
          "basis": {
            "type": "string",
            "enum": [
              "registry",
              "provider_verified",
              "document_extracted",
              "declared",
              "derived"
            ],
            "description": "How this observation was established. A declaration or extracted text is not verification.",
            "x-field-id": "VERIFY:VerificationProvenance.basis"
          },
          "source_id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque source identifier from assessment.sources, authorized for this workspace.",
            "x-field-id": "VERIFY:VerificationProvenance.source_id"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source observed the fact, null when unknown.",
            "x-field-id": "VERIFY:VerificationProvenance.observed_at"
          },
          "retrieved_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC time AMLOK retrieved this source version.",
            "x-field-id": "VERIFY:VerificationProvenance.retrieved_at"
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationEvidence"
            },
            "description": "Exact records or document pages supporting the observation; at least one.",
            "minItems": 1,
            "x-field-id": "VERIFY:VerificationProvenance.evidence"
          },
          "field_evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item for a field with different provenance.",
                  "x-field-id": "VERIFY:VerificationProvenance.field_evidence[].path"
                },
                "basis": {
                  "type": "string",
                  "enum": [
                    "registry",
                    "provider_verified",
                    "document_extracted",
                    "declared",
                    "derived"
                  ],
                  "x-field-id": "VERIFY:VerificationProvenance.field_evidence[].basis",
                  "description": "Basis. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "evidence": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VerificationEvidence"
                  },
                  "minItems": 1,
                  "x-field-id": "VERIFY:VerificationProvenance.field_evidence[].evidence",
                  "description": "Exact evidence records and source-document locations."
                }
              },
              "required": [
                "path",
                "basis",
                "evidence"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationProvenance.field_evidence",
            "description": "Field-specific provenance for values that differ from the item-level source."
          }
        },
        "required": [
          "basis",
          "source_id",
          "observed_at",
          "retrieved_at",
          "evidence",
          "field_evidence"
        ],
        "additionalProperties": false,
        "description": "Preserve conflicting source observations as separate items. Field evidence overrides item evidence only for the named path."
      },
      "VerificationScore": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original numeric value; null if only a rating was supplied.",
            "x-field-id": "VERIFY:VerificationScore.value"
          },
          "scale_min": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Documented lower scale bound; null when the source does not define one.",
            "x-field-id": "VERIFY:VerificationScore.scale_min"
          },
          "scale_max": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Documented upper scale bound; never assume 0-100.",
            "x-field-id": "VERIFY:VerificationScore.scale_max"
          },
          "direction": {
            "type": "string",
            "enum": [
              "higher_is_stronger_match",
              "higher_is_more_risk",
              "higher_is_more_assurance",
              "provider_defined",
              "unknown"
            ],
            "description": "Meaning of increasing values, not a credit-decision direction.",
            "x-field-id": "VERIFY:VerificationScore.direction"
          },
          "label": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original provider label or qualitative rating.",
            "x-field-id": "VERIFY:VerificationScore.label"
          },
          "method": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider method or model version when supplied.",
            "x-field-id": "VERIFY:VerificationScore.method"
          }
        },
        "required": [
          "value",
          "scale_min",
          "scale_max",
          "direction",
          "label",
          "method"
        ],
        "additionalProperties": false,
        "description": "No conversion to creditworthiness, default probability or a cross-provider score."
      },
      "VerificationIdentifier": {
        "type": "object",
        "properties": {
          "scheme": {
            "type": "string",
            "minLength": 1,
            "description": "Identifier scheme, for example corporation_number, EIN, BN, LEI, VAT or passport.",
            "x-field-id": "VERIFY:VerificationIdentifier.scheme"
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Permitted identifier value; null when masked, restricted or unavailable.",
            "x-field-id": "VERIFY:VerificationIdentifier.value"
          },
          "masked_value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Masked representation when full disclosure is not permitted.",
            "x-field-id": "VERIFY:VerificationIdentifier.masked_value"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO 3166-1 alpha-2 issuing country.",
            "x-field-id": "VERIFY:VerificationIdentifier.country"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO 3166-2 subdivision where known, otherwise source jurisdiction label.",
            "x-field-id": "VERIFY:VerificationIdentifier.jurisdiction"
          },
          "disclosure": {
            "type": "string",
            "enum": [
              "full",
              "masked",
              "unavailable"
            ],
            "x-field-id": "VERIFY:VerificationIdentifier.disclosure",
            "description": "Disclosure. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Reason for masking or unavailability.",
            "x-field-id": "VERIFY:VerificationIdentifier.reason"
          }
        },
        "required": [
          "scheme",
          "value",
          "masked_value",
          "country",
          "jurisdiction",
          "disclosure",
          "reason"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "disclosure": {
                  "const": "full"
                }
              }
            },
            "then": {
              "properties": {
                "value": {
                  "type": "string",
                  "minLength": 1
                },
                "reason": {
                  "type": "null"
                }
              }
            },
            "else": {
              "properties": {
                "value": {
                  "type": "null"
                },
                "reason": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "disclosure": {
                  "const": "masked"
                }
              }
            },
            "then": {
              "properties": {
                "masked_value": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ]
      },
      "VerificationFact": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "description": "Stable, namespaced supplemental field name.",
            "x-field-id": "VERIFY:VerificationFact.key"
          },
          "value": {
            "type": [
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Authorized scalar source value. Structured extras use named scalar facts, not undocumented nested payloads.",
            "x-field-id": "VERIFY:VerificationFact.value"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original unit where relevant.",
            "x-field-id": "VERIFY:VerificationFact.unit"
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Meaning of the source-specific fact.",
            "x-field-id": "VERIFY:VerificationFact.description"
          },
          "source_path": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original source field pointer.",
            "x-field-id": "VERIFY:VerificationFact.source_path"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Required explanation when the value is unavailable.",
            "x-field-id": "VERIFY:VerificationFact.reason"
          }
        },
        "required": [
          "key",
          "value",
          "unit",
          "description",
          "source_path",
          "reason"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "value": {
                  "type": "null"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ],
        "description": "Allowlisted underwriting-relevant facts. No credentials, raw biometrics, unrelated persons, or unreviewed sensitive attributes."
      },
      "VerificationCoverage": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "complete",
              "partial",
              "unavailable",
              "not_requested",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationCoverage.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "requested_scopes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Requested countries, registries, datasets or checks.",
            "x-field-id": "VERIFY:VerificationCoverage.requested_scopes"
          },
          "completed_scopes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Scopes actually completed; a subset of requested scopes.",
            "x-field-id": "VERIFY:VerificationCoverage.completed_scopes"
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Unsearched jurisdictions, failed datasets, licence restrictions and unresolved identities.",
            "x-field-id": "VERIFY:VerificationCoverage.limitations"
          }
        },
        "required": [
          "status",
          "requested_scopes",
          "completed_scopes",
          "limitations"
        ],
        "additionalProperties": false,
        "description": "Complete applies only to the requested scopes; never implies worldwide coverage."
      },
      "VerificationSource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque ID referenced by item provenance.",
            "x-field-id": "VERIFY:VerificationSource.id"
          },
          "kind": {
            "type": "string",
            "enum": [
              "identity_verification",
              "business_verification",
              "registry",
              "regulatory_registry",
              "screening",
              "document",
              "institution"
            ],
            "x-field-id": "VERIFY:VerificationSource.kind",
            "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "display_name": {
            "type": "string",
            "minLength": 1,
            "description": "Source label permitted for disclosure.",
            "x-field-id": "VERIFY:VerificationSource.display_name"
          },
          "jurisdictions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Actual source jurisdictions.",
            "x-field-id": "VERIFY:VerificationSource.jurisdictions"
          },
          "reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Permitted source report reference, excluding management URLs and secret session tokens.",
            "x-field-id": "VERIFY:VerificationSource.reference"
          },
          "reported_status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original source status; not silently mapped to verified.",
            "x-field-id": "VERIFY:VerificationSource.reported_status"
          },
          "requested_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "UTC request time.",
            "x-field-id": "VERIFY:VerificationSource.requested_at"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "UTC completion time; null for pending/unknown.",
            "x-field-id": "VERIFY:VerificationSource.completed_at"
          },
          "as_of": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source snapshot time; retrieval time is not a substitute.",
            "x-field-id": "VERIFY:VerificationSource.as_of"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationSource.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "AMLOK document IDs for authorized reports.",
            "x-field-id": "VERIFY:VerificationSource.document_ids"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Permitted source warnings.",
            "x-field-id": "VERIFY:VerificationSource.warnings"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Permitted source error codes or explanations; no stack traces or secrets.",
            "x-field-id": "VERIFY:VerificationSource.errors"
          }
        },
        "required": [
          "id",
          "kind",
          "display_name",
          "jurisdictions",
          "reference",
          "reported_status",
          "requested_at",
          "completed_at",
          "as_of",
          "coverage",
          "document_ids",
          "warnings",
          "errors"
        ],
        "additionalProperties": false
      },
      "VerificationResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationResult.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationResult.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationResult.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationResult.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationResult.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationResult.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationResult.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationResult.supplemental_facts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "identity",
              "document_authenticity",
              "liveness",
              "face_match",
              "duplicate_identity",
              "proof_of_address",
              "database",
              "business_registration",
              "good_standing",
              "ownership",
              "sanctions",
              "pep",
              "adverse_media",
              "watchlist",
              "tax_identifier",
              "licence",
              "public_records",
              "contact",
              "device",
              "bank_ownership",
              "signature",
              "other"
            ],
            "x-field-id": "VERIFY:VerificationResult.kind",
            "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "state": {
            "type": "string",
            "enum": [
              "pending",
              "in_progress",
              "completed",
              "failed",
              "not_requested",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationResult.state",
            "description": "State. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "outcome": {
            "type": "string",
            "enum": [
              "passed",
              "failed",
              "review_required",
              "inconclusive",
              "not_performed"
            ],
            "x-field-id": "VERIFY:VerificationResult.outcome",
            "description": "Verification/compliance result, not a lending decision."
          },
          "provider_status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original provider decision or result.",
            "x-field-id": "VERIFY:VerificationResult.provider_status"
          },
          "original_provider_status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider decision before an override, when supplied.",
            "x-field-id": "VERIFY:VerificationResult.original_provider_status"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Normalized/source reason codes with explanations in summary.",
            "x-field-id": "VERIFY:VerificationResult.reason_codes"
          },
          "summary": {
            "type": "string",
            "minLength": 1,
            "description": "Human-readable explanation of what was established and what remains unresolved.",
            "x-field-id": "VERIFY:VerificationResult.summary"
          },
          "method": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Verification method or assurance mechanism.",
            "x-field-id": "VERIFY:VerificationResult.method"
          },
          "required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether the effective verification policy required this check.",
            "x-field-id": "VERIFY:VerificationResult.required"
          },
          "policy_version": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Version or reference of the matching/verification policy actually used.",
            "x-field-id": "VERIFY:VerificationResult.policy_version"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Completion timestamp; null when not completed.",
            "x-field-id": "VERIFY:VerificationResult.completed_at"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Explicit result expiry, not an inferred expiry.",
            "x-field-id": "VERIFY:VerificationResult.expires_at"
          },
          "item_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "IDs of detailed observations supporting this check.",
            "x-field-id": "VERIFY:VerificationResult.item_ids"
          },
          "override": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "outcome": {
                    "type": "string",
                    "enum": [
                      "passed",
                      "failed",
                      "review_required",
                      "inconclusive",
                      "not_performed"
                    ],
                    "x-field-id": "VERIFY:VerificationResult.override.outcome",
                    "description": "Verification/compliance result, not a lending decision."
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "x-field-id": "VERIFY:VerificationResult.override.reason",
                    "description": "Explicit explanation code when no complete usable value is available."
                  },
                  "decided_at": {
                    "type": "string",
                    "minLength": 1,
                    "format": "date-time",
                    "x-field-id": "VERIFY:VerificationResult.override.decided_at",
                    "description": "Decided at. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "actor_reference": {
                    "type": "string",
                    "minLength": 1,
                    "x-field-id": "VERIFY:VerificationResult.override.actor_reference",
                    "description": "Actor reference. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  }
                },
                "required": [
                  "outcome",
                  "reason",
                  "decided_at",
                  "actor_reference"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Authorized override with auditable reason; retains original result.",
            "x-field-id": "VERIFY:VerificationResult.override"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "state",
          "outcome",
          "provider_status",
          "original_provider_status",
          "reason_codes",
          "summary",
          "method",
          "required",
          "policy_version",
          "completed_at",
          "expires_at",
          "item_ids",
          "override"
        ],
        "additionalProperties": false,
        "description": "A completed check is distinct from a passing check and from an institution lending decision.",
        "allOf": [
          {
            "if": {
              "properties": {
                "state": {
                  "enum": [
                    "pending",
                    "in_progress",
                    "failed",
                    "not_requested",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "outcome": {
                  "enum": [
                    "inconclusive",
                    "not_performed"
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "outcome": {
                  "enum": [
                    "passed",
                    "failed",
                    "review_required"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "state": {
                  "const": "completed"
                },
                "completed_at": {
                  "type": "string",
                  "minLength": 1,
                  "format": "date-time"
                }
              }
            }
          }
        ]
      },
      "VerificationBusiness": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationBusiness.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationBusiness.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationBusiness.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationBusiness.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationBusiness.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationBusiness.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationBusiness.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationBusiness.supplemental_facts"
          },
          "resolution": {
            "type": "string",
            "enum": [
              "candidate",
              "selected",
              "unresolved"
            ],
            "x-field-id": "VERIFY:VerificationBusiness.resolution",
            "description": "Resolution. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "legal_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed legal name.",
            "x-field-id": "VERIFY:VerificationBusiness.legal_name"
          },
          "alternate_names": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Trade, former and alternative names, without discarding the source spelling.",
            "x-field-id": "VERIFY:VerificationBusiness.alternate_names"
          },
          "entity_type": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized legal form; source wording may be retained in supplemental facts.",
            "x-field-id": "VERIFY:VerificationBusiness.entity_type"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Country of incorporation.",
            "x-field-id": "VERIFY:VerificationBusiness.country"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Registration subdivision or jurisdiction.",
            "x-field-id": "VERIFY:VerificationBusiness.jurisdiction"
          },
          "identifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationIdentifier"
            },
            "description": "Registration, business, tax, LEI and securities identifiers.",
            "x-field-id": "VERIFY:VerificationBusiness.identifiers"
          },
          "incorporation_date": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date established or incorporated, with distinct registration dates in registrations.",
            "x-field-id": "VERIFY:VerificationBusiness.incorporation_date"
          },
          "nature_of_business": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported business activities.",
            "x-field-id": "VERIFY:VerificationBusiness.nature_of_business"
          },
          "registry_status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Status exactly as reported by the registry.",
            "x-field-id": "VERIFY:VerificationBusiness.registry_status"
          },
          "good_standing": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Explicit registry standing; active status does not prove good standing.",
            "x-field-id": "VERIFY:VerificationBusiness.good_standing"
          },
          "address_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "IDs in addresses.",
            "x-field-id": "VERIFY:VerificationBusiness.address_ids"
          },
          "relationship_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "IDs in relationships.",
            "x-field-id": "VERIFY:VerificationBusiness.relationship_ids"
          },
          "industry_codes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "scheme": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationBusiness.industry_codes[].scheme",
                  "description": "Scheme. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "code": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationBusiness.industry_codes[].code",
                  "description": "Code. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "label": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationBusiness.industry_codes[].label",
                  "description": "Label. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "basis": {
                  "type": "string",
                  "enum": [
                    "declared",
                    "registry",
                    "predicted"
                  ],
                  "x-field-id": "VERIFY:VerificationBusiness.industry_codes[].basis",
                  "description": "Basis. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "confidence": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/VerificationScore"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationBusiness.industry_codes[].confidence",
                  "description": "Confidence. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                }
              },
              "required": [
                "scheme",
                "code",
                "label",
                "basis",
                "confidence"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationBusiness.industry_codes",
            "description": "Industry codes. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "website": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed public business website.",
            "x-field-id": "VERIFY:VerificationBusiness.website"
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed public business email.",
            "x-field-id": "VERIFY:VerificationBusiness.email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed public business phone.",
            "x-field-id": "VERIFY:VerificationBusiness.phone"
          },
          "registered_capital": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Money"
              },
              {
                "type": "null"
              }
            ],
            "description": "Capital amount only if amount and currency are both known.",
            "x-field-id": "VERIFY:VerificationBusiness.registered_capital"
          },
          "financial_highlights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Source registry financial highlights, each with an explicit period and unit in its description.",
            "x-field-id": "VERIFY:VerificationBusiness.financial_highlights"
          },
          "match_score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Candidate similarity; never identity proof.",
            "x-field-id": "VERIFY:VerificationBusiness.match_score"
          },
          "source_url": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Public registry URL only, without credentials or access tokens.",
            "x-field-id": "VERIFY:VerificationBusiness.source_url"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "resolution",
          "legal_name",
          "alternate_names",
          "entity_type",
          "country",
          "jurisdiction",
          "identifiers",
          "incorporation_date",
          "nature_of_business",
          "registry_status",
          "good_standing",
          "address_ids",
          "relationship_ids",
          "industry_codes",
          "website",
          "email",
          "phone",
          "registered_capital",
          "financial_highlights",
          "match_score",
          "source_url"
        ],
        "additionalProperties": false,
        "description": "A candidate or registry observation is not an automatically verified borrower."
      },
      "VerificationPerson": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationPerson.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationPerson.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationPerson.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationPerson.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationPerson.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationPerson.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationPerson.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationPerson.supplemental_facts"
          },
          "full_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed full name.",
            "x-field-id": "VERIFY:VerificationPerson.full_name"
          },
          "given_names": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Given names.",
            "x-field-id": "VERIFY:VerificationPerson.given_names"
          },
          "middle_names": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Middle names.",
            "x-field-id": "VERIFY:VerificationPerson.middle_names"
          },
          "family_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Family name.",
            "x-field-id": "VERIFY:VerificationPerson.family_name"
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Observed aliases or former names.",
            "x-field-id": "VERIFY:VerificationPerson.aliases"
          },
          "date_of_birth": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date of birth when disclosure and verification purpose permit.",
            "x-field-id": "VERIFY:VerificationPerson.date_of_birth"
          },
          "nationalities": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "ISO alpha-2 countries when known; identity/compliance context only.",
            "x-field-id": "VERIFY:VerificationPerson.nationalities"
          },
          "country_of_birth": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Country of birth for authorized identity disambiguation only.",
            "x-field-id": "VERIFY:VerificationPerson.country_of_birth"
          },
          "identifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationIdentifier"
            },
            "description": "Masked personal identifiers by default.",
            "x-field-id": "VERIFY:VerificationPerson.identifiers"
          },
          "address_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Authorized address references.",
            "x-field-id": "VERIFY:VerificationPerson.address_ids"
          },
          "identity_check_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Detailed verification check IDs.",
            "x-field-id": "VERIFY:VerificationPerson.identity_check_ids"
          },
          "identity_assurance": {
            "type": "string",
            "enum": [
              "unverified",
              "documentary",
              "database_match",
              "cryptographic",
              "unknown"
            ],
            "x-field-id": "VERIFY:VerificationPerson.identity_assurance",
            "description": "Identity assurance. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "full_name",
          "given_names",
          "middle_names",
          "family_name",
          "aliases",
          "date_of_birth",
          "nationalities",
          "country_of_birth",
          "identifiers",
          "address_ids",
          "identity_check_ids",
          "identity_assurance"
        ],
        "additionalProperties": false,
        "description": "Identity details only for authorized borrowers and associated people; not credit-scoring attributes."
      },
      "VerificationRegistration": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationRegistration.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationRegistration.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationRegistration.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationRegistration.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationRegistration.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationRegistration.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationRegistration.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationRegistration.supplemental_facts"
          },
          "authority": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry or authority name.",
            "x-field-id": "VERIFY:VerificationRegistration.authority"
          },
          "registration_number": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Public corporate filing identifier, not a personal identifier.",
            "x-field-id": "VERIFY:VerificationRegistration.registration_number"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registration country.",
            "x-field-id": "VERIFY:VerificationRegistration.country"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Registration subdivision.",
            "x-field-id": "VERIFY:VerificationRegistration.jurisdiction"
          },
          "registration_type": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Domestic, foreign, corporation, partnership or source classification.",
            "x-field-id": "VERIFY:VerificationRegistration.registration_type"
          },
          "registered_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Name recorded in this registration.",
            "x-field-id": "VERIFY:VerificationRegistration.registered_name"
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry status.",
            "x-field-id": "VERIFY:VerificationRegistration.status"
          },
          "standing": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original good-standing/compliance wording.",
            "x-field-id": "VERIFY:VerificationRegistration.standing"
          },
          "registered_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registration date.",
            "x-field-id": "VERIFY:VerificationRegistration.registered_on"
          },
          "inactive_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Recorded inactivity date.",
            "x-field-id": "VERIFY:VerificationRegistration.inactive_on"
          },
          "dissolved_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Recorded dissolution date.",
            "x-field-id": "VERIFY:VerificationRegistration.dissolved_on"
          },
          "last_annual_return_year": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Most recent return year; not a date or a completed current-year return.",
            "x-field-id": "VERIFY:VerificationRegistration.last_annual_return_year"
          },
          "last_annual_return_filed_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Filing date for the most recent annual return.",
            "x-field-id": "VERIFY:VerificationRegistration.last_annual_return_filed_on"
          },
          "annual_return_status": {
            "type": "string",
            "enum": [
              "current",
              "overdue",
              "unknown",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationRegistration.annual_return_status",
            "description": "Annual return status. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "outstanding_return_years": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0
            },
            "x-field-id": "VERIFY:VerificationRegistration.outstanding_return_years",
            "description": "Outstanding return years. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "registered_agent_relationship_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Relationship ID for an individual or corporate service agent.",
            "x-field-id": "VERIFY:VerificationRegistration.registered_agent_relationship_id"
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Associated source report and registry document IDs.",
            "x-field-id": "VERIFY:VerificationRegistration.document_ids"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "authority",
          "registration_number",
          "country",
          "jurisdiction",
          "registration_type",
          "registered_name",
          "status",
          "standing",
          "registered_on",
          "inactive_on",
          "dissolved_on",
          "last_annual_return_year",
          "last_annual_return_filed_on",
          "annual_return_status",
          "outstanding_return_years",
          "registered_agent_relationship_id",
          "document_ids"
        ],
        "additionalProperties": false,
        "description": "One registry registration, including extra-provincial or foreign registrations."
      },
      "VerificationAddress": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationAddress.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationAddress.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationAddress.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationAddress.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationAddress.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationAddress.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationAddress.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationAddress.supplemental_facts"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Registered office, records office, operating, service, mailing, residential or other source role.",
            "x-field-id": "VERIFY:VerificationAddress.roles"
          },
          "raw": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original address string, subject to permission.",
            "x-field-id": "VERIFY:VerificationAddress.raw"
          },
          "street": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Street including number.",
            "x-field-id": "VERIFY:VerificationAddress.street"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit, suite or floor; do not silently discard it.",
            "x-field-id": "VERIFY:VerificationAddress.unit"
          },
          "city": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "City.",
            "x-field-id": "VERIFY:VerificationAddress.city"
          },
          "region": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized province/state code where known.",
            "x-field-id": "VERIFY:VerificationAddress.region"
          },
          "postal_code": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Postal/ZIP code, stored as text.",
            "x-field-id": "VERIFY:VerificationAddress.postal_code"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO alpha-2 country.",
            "x-field-id": "VERIFY:VerificationAddress.country"
          },
          "formatted": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Formatted address.",
            "x-field-id": "VERIFY:VerificationAddress.formatted"
          },
          "validation": {
            "type": "string",
            "enum": [
              "validated",
              "partial",
              "not_validated",
              "unknown"
            ],
            "x-field-id": "VERIFY:VerificationAddress.validation",
            "description": "Validation. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "deliverable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Postal deliverability from a source check.",
            "x-field-id": "VERIFY:VerificationAddress.deliverable"
          },
          "classification": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Residential, commercial, mixed, PO box, CMRA, virtual office or original classification.",
            "x-field-id": "VERIFY:VerificationAddress.classification"
          },
          "is_cmra": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-reported commercial mail receiving agency indicator.",
            "x-field-id": "VERIFY:VerificationAddress.is_cmra"
          },
          "is_virtual": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-reported virtual address indicator.",
            "x-field-id": "VERIFY:VerificationAddress.is_virtual"
          },
          "is_registered_agent": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether this is a registered-agent address.",
            "x-field-id": "VERIFY:VerificationAddress.is_registered_agent"
          },
          "match_score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Address comparison score when actually supplied.",
            "x-field-id": "VERIFY:VerificationAddress.match_score"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "roles",
          "raw",
          "street",
          "unit",
          "city",
          "region",
          "postal_code",
          "country",
          "formatted",
          "validation",
          "deliverable",
          "classification",
          "is_cmra",
          "is_virtual",
          "is_registered_agent",
          "match_score"
        ],
        "additionalProperties": false,
        "description": "Keep distinct address roles even when their physical addresses match."
      },
      "VerificationRelationship": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationRelationship.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationRelationship.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationRelationship.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationRelationship.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationRelationship.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationRelationship.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationRelationship.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationRelationship.supplemental_facts"
          },
          "related_subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Related person or business subject ID.",
            "x-field-id": "VERIFY:VerificationRelationship.related_subject_id"
          },
          "related_entity_type": {
            "type": "string",
            "enum": [
              "person",
              "business",
              "unknown"
            ],
            "x-field-id": "VERIFY:VerificationRelationship.related_entity_type",
            "description": "Related entity type. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed related-party name.",
            "x-field-id": "VERIFY:VerificationRelationship.name"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Director, officer, shareholder, beneficial_owner, agent_for_service, authorized_signatory, parent or other sourced roles.",
            "x-field-id": "VERIFY:VerificationRelationship.roles"
          },
          "role_labels": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Unmodified source role labels, preserving distinctions.",
            "x-field-id": "VERIFY:VerificationRelationship.role_labels"
          },
          "position": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported job title/designation.",
            "x-field-id": "VERIFY:VerificationRelationship.position"
          },
          "appointed_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Appointment/start date.",
            "x-field-id": "VERIFY:VerificationRelationship.appointed_on"
          },
          "ended_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Termination/end date.",
            "x-field-id": "VERIFY:VerificationRelationship.ended_on"
          },
          "active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-confirmed current role.",
            "x-field-id": "VERIFY:VerificationRelationship.active"
          },
          "authority": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Documented authority or powers; null when unverified.",
            "x-field-id": "VERIFY:VerificationRelationship.authority"
          },
          "address_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Related party addresses.",
            "x-field-id": "VERIFY:VerificationRelationship.address_ids"
          },
          "registration_identifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationIdentifier"
            },
            "description": "Public identifiers for corporate related parties.",
            "x-field-id": "VERIFY:VerificationRelationship.registration_identifiers"
          },
          "verification_check_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Checks performed on this related subject.",
            "x-field-id": "VERIFY:VerificationRelationship.verification_check_ids"
          },
          "verification_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether this party requires verification under effective policy.",
            "x-field-id": "VERIFY:VerificationRelationship.verification_required"
          },
          "verification_state": {
            "type": "string",
            "enum": [
              "completed",
              "pending",
              "not_requested",
              "skipped",
              "unavailable"
            ],
            "x-field-id": "VERIFY:VerificationRelationship.verification_state",
            "description": "Verification state. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "skip_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Explicit reason a required party was not verified.",
            "x-field-id": "VERIFY:VerificationRelationship.skip_reason"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "related_subject_id",
          "related_entity_type",
          "name",
          "roles",
          "role_labels",
          "position",
          "appointed_on",
          "ended_on",
          "active",
          "authority",
          "address_ids",
          "registration_identifiers",
          "verification_check_ids",
          "verification_required",
          "verification_state",
          "skip_reason"
        ],
        "additionalProperties": false,
        "description": "A role does not establish ownership, control or successful KYC."
      },
      "VerificationOwnership": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationOwnership.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationOwnership.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationOwnership.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationOwnership.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationOwnership.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationOwnership.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationOwnership.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationOwnership.supplemental_facts"
          },
          "owner_subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Person or corporate owner ID.",
            "x-field-id": "VERIFY:VerificationOwnership.owner_subject_id"
          },
          "owned_subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Owned entity ID.",
            "x-field-id": "VERIFY:VerificationOwnership.owned_subject_id"
          },
          "interest_type": {
            "type": "string",
            "enum": [
              "direct",
              "indirect",
              "beneficial",
              "voting",
              "unknown"
            ],
            "x-field-id": "VERIFY:VerificationOwnership.interest_type",
            "description": "Interest type. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "economic_share": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fraction 0-1 of economic equity; 0.25 means 25%.",
            "x-field-id": "VERIFY:VerificationOwnership.economic_share"
          },
          "voting_share": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fraction 0-1 of voting rights. Voting percentage does not establish economic equity.",
            "x-field-id": "VERIFY:VerificationOwnership.voting_share"
          },
          "economic_share_min": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Lower bound when source reports a range.",
            "x-field-id": "VERIFY:VerificationOwnership.economic_share_min"
          },
          "economic_share_max": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Upper bound when source reports a range.",
            "x-field-id": "VERIFY:VerificationOwnership.economic_share_max"
          },
          "voting_share_min": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Lower voting fraction bound.",
            "x-field-id": "VERIFY:VerificationOwnership.voting_share_min"
          },
          "voting_share_max": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Upper voting fraction bound.",
            "x-field-id": "VERIFY:VerificationOwnership.voting_share_max"
          },
          "effective_share": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Indirect economic fraction only when a complete, evidenced chain supports it.",
            "x-field-id": "VERIFY:VerificationOwnership.effective_share"
          },
          "share_class": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Class of shares or interest.",
            "x-field-id": "VERIFY:VerificationOwnership.share_class"
          },
          "share_count": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Number of shares where supplied, not a percentage.",
            "x-field-id": "VERIFY:VerificationOwnership.share_count"
          },
          "nominal_value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Money"
              },
              {
                "type": "null"
              }
            ],
            "description": "Nominal value with source currency.",
            "x-field-id": "VERIFY:VerificationOwnership.nominal_value"
          },
          "total_value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Money"
              },
              {
                "type": "null"
              }
            ],
            "description": "Total stated holding value with source currency.",
            "x-field-id": "VERIFY:VerificationOwnership.total_value"
          },
          "nature_of_control": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Source-described control mechanisms.",
            "x-field-id": "VERIFY:VerificationOwnership.nature_of_control"
          },
          "chain_subject_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Ordered ownership chain from owner to assessed entity.",
            "x-field-id": "VERIFY:VerificationOwnership.chain_subject_ids"
          },
          "chain_complete": {
            "type": "boolean",
            "description": "True only when all intermediate interests are evidenced.",
            "x-field-id": "VERIFY:VerificationOwnership.chain_complete"
          },
          "unresolved_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Missing intermediate owner, uncertain basis, incomplete coverage or other limitation.",
            "x-field-id": "VERIFY:VerificationOwnership.unresolved_reason"
          },
          "reported_interest": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original sharesHeld or ownership wording, retained for audit.",
            "x-field-id": "VERIFY:VerificationOwnership.reported_interest"
          },
          "basis_date": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date the interest was reported or effective.",
            "x-field-id": "VERIFY:VerificationOwnership.basis_date"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "owner_subject_id",
          "owned_subject_id",
          "interest_type",
          "economic_share",
          "voting_share",
          "economic_share_min",
          "economic_share_max",
          "voting_share_min",
          "voting_share_max",
          "effective_share",
          "share_class",
          "share_count",
          "nominal_value",
          "total_value",
          "nature_of_control",
          "chain_subject_ids",
          "chain_complete",
          "unresolved_reason",
          "reported_interest",
          "basis_date"
        ],
        "additionalProperties": false,
        "description": "Economic ownership, voting control and indirect beneficial ownership remain distinct.",
        "allOf": [
          {
            "if": {
              "properties": {
                "chain_complete": {
                  "const": false
                }
              }
            },
            "then": {
              "properties": {
                "effective_share": {
                  "type": "null"
                },
                "unresolved_reason": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ]
      },
      "VerificationIdentityDocument": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationIdentityDocument.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationIdentityDocument.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationIdentityDocument.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationIdentityDocument.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationIdentityDocument.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.supplemental_facts"
          },
          "document_type": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Passport, national identity, driving licence or source document class.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.document_type"
          },
          "document_subtype": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Jurisdiction-specific subtype.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.document_subtype"
          },
          "identifier": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationIdentifier"
              },
              {
                "type": "null"
              }
            ],
            "description": "Masked document number unless full disclosure is specifically permitted.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.identifier"
          },
          "issuing_country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Alpha-2 issuing country; retain alpha-3 source code only in provenance.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.issuing_country"
          },
          "issued_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Issue date.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.issued_on"
          },
          "expires_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Expiry date.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.expires_on"
          },
          "holder_subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Person whose identity is on the document.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.holder_subject_id"
          },
          "method": {
            "type": "string",
            "enum": [
              "document",
              "database",
              "wallet",
              "nfc",
              "unknown"
            ],
            "x-field-id": "VERIFY:VerificationIdentityDocument.method",
            "description": "Method. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "assurance": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Documentary, data match or cryptographic assurance as supported by evidence.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.assurance"
          },
          "authenticity": {
            "type": "string",
            "enum": [
              "passed",
              "failed",
              "inconclusive",
              "not_checked"
            ],
            "x-field-id": "VERIFY:VerificationIdentityDocument.authenticity",
            "description": "Authenticity. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "extracted_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Allowlisted identity fields and extraction confidence/quality facts.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.extracted_fields"
          },
          "quality_scores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationScore"
            },
            "x-field-id": "VERIFY:VerificationIdentityDocument.quality_scores",
            "description": "Quality scores. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "nfc": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "chip_read": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.nfc.chip_read",
                    "description": "Whether the NFC chip was successfully read; this alone does not prove authenticity."
                  },
                  "passive_authentication": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.nfc.passive_authentication",
                    "description": "Whether the chip data signature passed passive authentication."
                  },
                  "active_authentication": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.nfc.active_authentication",
                    "description": "Whether active authentication passed the chip challenge-response check."
                  },
                  "chip_authentication": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.nfc.chip_authentication",
                    "description": "Whether cryptographic chip authentication passed."
                  },
                  "data_integrity": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.nfc.data_integrity",
                    "description": "Whether the reported chip data-integrity checks passed."
                  },
                  "certificate_valid": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.nfc.certificate_valid",
                    "description": "Whether the relevant certificate passed the source validation checks."
                  },
                  "protocol": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.nfc.protocol",
                    "description": "Reported chip authentication or communication protocol."
                  },
                  "skipped_reason": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.nfc.skipped_reason",
                    "description": "Explicit reason this check was skipped; do not infer a passing outcome."
                  }
                },
                "required": [
                  "chip_read",
                  "passive_authentication",
                  "active_authentication",
                  "chip_authentication",
                  "data_integrity",
                  "certificate_valid",
                  "protocol",
                  "skipped_reason"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "NFC check results only; no chip dumps or biometric portraits.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.nfc"
          },
          "wallet": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "issuer": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.wallet.issuer",
                    "description": "Issuer. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "country": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^[A-Z]{2}$"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.wallet.country",
                    "description": "Country. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "credential_type": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.wallet.credential_type",
                    "description": "Type of verified digital credential."
                  },
                  "assurance_level": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.wallet.assurance_level",
                    "description": "Assurance level stated by the credential issuer or verification source."
                  },
                  "signature_valid": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.wallet.signature_valid",
                    "description": "Whether the credential signature passed source validation."
                  },
                  "verified_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "format": "date-time"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationIdentityDocument.wallet.verified_at",
                    "description": "Verified at. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  }
                },
                "required": [
                  "issuer",
                  "country",
                  "credential_type",
                  "assurance_level",
                  "signature_valid",
                  "verified_at"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Verified digital credential attributes; no access tokens.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.wallet"
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Authorized document reference; subject to evidence access at download time.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.document_id"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Expired, tampered, unsupported, missing or other source findings.",
            "x-field-id": "VERIFY:VerificationIdentityDocument.reason_codes"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "document_type",
          "document_subtype",
          "identifier",
          "issuing_country",
          "issued_on",
          "expires_on",
          "holder_subject_id",
          "method",
          "assurance",
          "authenticity",
          "extracted_fields",
          "quality_scores",
          "nfc",
          "wallet",
          "document_id",
          "reason_codes"
        ],
        "additionalProperties": false,
        "description": "Document observations and verification results without capture media or raw biometric templates."
      },
      "VerificationBiometric": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationBiometric.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationBiometric.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationBiometric.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationBiometric.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationBiometric.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationBiometric.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationBiometric.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationBiometric.supplemental_facts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "liveness",
              "face_match",
              "document_selfie_match"
            ],
            "x-field-id": "VERIFY:VerificationBiometric.kind",
            "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "method": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Passive, active, document-to-selfie or other source method.",
            "x-field-id": "VERIFY:VerificationBiometric.method"
          },
          "outcome": {
            "type": "string",
            "enum": [
              "passed",
              "failed",
              "review_required",
              "inconclusive",
              "not_performed"
            ],
            "x-field-id": "VERIFY:VerificationBiometric.outcome",
            "description": "Verification/compliance result, not a lending decision."
          },
          "score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original assurance or similarity score.",
            "x-field-id": "VERIFY:VerificationBiometric.score"
          },
          "threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual configured source threshold, null when not disclosed.",
            "x-field-id": "VERIFY:VerificationBiometric.threshold"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Source spoofing, quality or comparison findings.",
            "x-field-id": "VERIFY:VerificationBiometric.reason_codes"
          },
          "comparison_subject_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Authorized same-workspace subject references; never cross-customer identities.",
            "x-field-id": "VERIFY:VerificationBiometric.comparison_subject_ids"
          },
          "consent_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Reference to authorization governing this check; not raw consent biometrics.",
            "x-field-id": "VERIFY:VerificationBiometric.consent_reference"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "method",
          "outcome",
          "score",
          "threshold",
          "reason_codes",
          "comparison_subject_ids",
          "consent_reference"
        ],
        "additionalProperties": false,
        "description": "Verification outputs for identity assurance, never borrower capacity or character scoring."
      },
      "VerificationScreeningHit": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "x-field-id": "VERIFY:VerificationScreeningHit.id",
            "description": "Id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "category": {
            "type": "string",
            "enum": [
              "sanctions",
              "pep",
              "adverse_media",
              "watchlist",
              "other"
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.category",
            "description": "Category. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "matched_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.matched_name",
            "description": "Candidate subject name returned by screening, not a confirmed identity match."
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "x-field-id": "VERIFY:VerificationScreeningHit.aliases",
            "description": "Aliases. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "list_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.list_name",
            "description": "Screening list or dataset name actually returned for the candidate."
          },
          "list_authority": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.list_authority",
            "description": "Authority publishing the screening list, when identified by the source."
          },
          "source_record_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.source_record_reference",
            "description": "Permitted native screening record identifier used to trace this candidate."
          },
          "source_url": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.source_url",
            "description": "Source url. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "match_score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.match_score",
            "description": "Match score. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "risk_score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.risk_score",
            "description": "Risk score. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "disposition": {
            "type": "string",
            "enum": [
              "unreviewed",
              "confirmed",
              "false_positive",
              "inconclusive"
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.disposition",
            "description": "Review state; unreviewed candidates are not confirmed matches."
          },
          "reviewed_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.reviewed_at",
            "description": "UTC time the hit disposition was reviewed; null means no completed review is recorded."
          },
          "review_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.review_reason",
            "description": "Reason supporting the documented match disposition."
          },
          "first_seen_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.first_seen_at",
            "description": "UTC time this source first recorded the candidate, when known."
          },
          "last_seen_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "x-field-id": "VERIFY:VerificationScreeningHit.last_seen_at",
            "description": "UTC time this source last recorded the candidate, when known."
          },
          "properties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "x-field-id": "VERIFY:VerificationScreeningHit.properties",
            "description": "Properties. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationEvidence"
            },
            "minItems": 1,
            "x-field-id": "VERIFY:VerificationScreeningHit.evidence",
            "description": "Exact evidence records and source-document locations."
          }
        },
        "required": [
          "id",
          "category",
          "matched_name",
          "aliases",
          "list_name",
          "list_authority",
          "source_record_reference",
          "source_url",
          "match_score",
          "risk_score",
          "disposition",
          "reviewed_at",
          "review_reason",
          "first_seen_at",
          "last_seen_at",
          "properties",
          "evidence"
        ],
        "additionalProperties": false,
        "description": "Potential name match until disposition is confirmed. News allegations and PEP status are not findings of misconduct."
      },
      "VerificationScreening": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationScreening.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationScreening.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationScreening.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationScreening.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationScreening.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationScreening.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationScreening.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationScreening.supplemental_facts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "sanctions",
              "pep",
              "adverse_media",
              "watchlist",
              "combined"
            ],
            "x-field-id": "VERIFY:VerificationScreening.kind",
            "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "state": {
            "type": "string",
            "enum": [
              "completed",
              "pending",
              "failed",
              "not_requested"
            ],
            "x-field-id": "VERIFY:VerificationScreening.state",
            "description": "State. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "result": {
            "type": "string",
            "enum": [
              "no_match",
              "potential_match",
              "confirmed_match",
              "inconclusive",
              "not_screened"
            ],
            "x-field-id": "VERIFY:VerificationScreening.result",
            "description": "Result. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationScreening.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "screened_values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted identity attributes actually submitted, identifiers masked.",
            "x-field-id": "VERIFY:VerificationScreening.screened_values"
          },
          "hits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationScreeningHit"
            },
            "description": "All returned authorized candidates, not only confirmed matches.",
            "x-field-id": "VERIFY:VerificationScreening.hits"
          },
          "reported_hit_count": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider total, null when unavailable.",
            "x-field-id": "VERIFY:VerificationScreening.reported_hit_count"
          },
          "returned_hit_count": {
            "type": "integer",
            "minimum": 0,
            "description": "Count of hits returned in this item.",
            "x-field-id": "VERIFY:VerificationScreening.returned_hit_count"
          },
          "screened_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual screening time.",
            "x-field-id": "VERIFY:VerificationScreening.screened_at"
          },
          "dataset_updated_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-reported dataset freshness; do not infer it.",
            "x-field-id": "VERIFY:VerificationScreening.dataset_updated_at"
          },
          "ongoing_monitoring": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether the source actually has ongoing screening enabled.",
            "x-field-id": "VERIFY:VerificationScreening.ongoing_monitoring"
          },
          "last_rescreened_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual last completed rescreening; never a billing date.",
            "x-field-id": "VERIFY:VerificationScreening.last_rescreened_at"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "state",
          "result",
          "coverage",
          "screened_values",
          "hits",
          "reported_hit_count",
          "returned_hit_count",
          "screened_at",
          "dataset_updated_at",
          "ongoing_monitoring",
          "last_rescreened_at"
        ],
        "additionalProperties": false,
        "description": "No-match is valid only for a completed search with known, complete requested coverage.",
        "allOf": [
          {
            "if": {
              "properties": {
                "result": {
                  "const": "no_match"
                }
              }
            },
            "then": {
              "properties": {
                "state": {
                  "const": "completed"
                },
                "coverage": {
                  "properties": {
                    "status": {
                      "const": "complete"
                    }
                  }
                },
                "hits": {
                  "maxItems": 0
                },
                "reported_hit_count": {
                  "const": 0
                },
                "returned_hit_count": {
                  "const": 0
                },
                "screened_at": {
                  "type": "string",
                  "minLength": 1,
                  "format": "date-time"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "state": {
                  "enum": [
                    "pending",
                    "failed",
                    "not_requested"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "result": {
                  "enum": [
                    "inconclusive",
                    "not_screened"
                  ]
                }
              }
            }
          }
        ]
      },
      "VerificationTaxCheck": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationTaxCheck.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationTaxCheck.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationTaxCheck.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationTaxCheck.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationTaxCheck.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationTaxCheck.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationTaxCheck.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationTaxCheck.supplemental_facts"
          },
          "identifier": {
            "$ref": "#/components/schemas/VerificationIdentifier",
            "x-field-id": "VERIFY:VerificationTaxCheck.identifier",
            "description": "Identifier. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "authority": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Source authority or registry used for validation.",
            "x-field-id": "VERIFY:VerificationTaxCheck.authority"
          },
          "result": {
            "type": "string",
            "enum": [
              "matched",
              "not_matched",
              "partial_match",
              "format_valid",
              "invalid_format",
              "unavailable",
              "not_checked"
            ],
            "x-field-id": "VERIFY:VerificationTaxCheck.result",
            "description": "Result. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "provided_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Submitted taxpayer name.",
            "x-field-id": "VERIFY:VerificationTaxCheck.provided_name"
          },
          "registered_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Permitted authority-returned name.",
            "x-field-id": "VERIFY:VerificationTaxCheck.registered_name"
          },
          "registered_address_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Address ID returned by the authority.",
            "x-field-id": "VERIFY:VerificationTaxCheck.registered_address_id"
          },
          "checked_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the tax-ID check completed.",
            "x-field-id": "VERIFY:VerificationTaxCheck.checked_at"
          },
          "unavailable_reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Outage, country not supported, not submitted, entitlement or other reason.",
            "x-field-id": "VERIFY:VerificationTaxCheck.unavailable_reason"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "identifier",
          "authority",
          "result",
          "provided_name",
          "registered_name",
          "registered_address_id",
          "checked_at",
          "unavailable_reason"
        ],
        "additionalProperties": false,
        "description": "Identifier/name validation does not establish taxes paid or absence of tax debt."
      },
      "VerificationLicence": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationLicence.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationLicence.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationLicence.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationLicence.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationLicence.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationLicence.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationLicence.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationLicence.supplemental_facts"
          },
          "registry": {
            "type": "string",
            "minLength": 1,
            "description": "Name of regulatory registry.",
            "x-field-id": "VERIFY:VerificationLicence.registry"
          },
          "authority": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Issuing or supervising authority.",
            "x-field-id": "VERIFY:VerificationLicence.authority"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Country.",
            "x-field-id": "VERIFY:VerificationLicence.country"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Province/state/municipality.",
            "x-field-id": "VERIFY:VerificationLicence.jurisdiction"
          },
          "identifier": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Licence or regulatory registration number.",
            "x-field-id": "VERIFY:VerificationLicence.identifier"
          },
          "legal_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Licensed entity name.",
            "x-field-id": "VERIFY:VerificationLicence.legal_name"
          },
          "licence_types": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Reported permit classes or activities.",
            "x-field-id": "VERIFY:VerificationLicence.licence_types"
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original status, including renewal or suspension distinctions.",
            "x-field-id": "VERIFY:VerificationLicence.status"
          },
          "issued_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "First issue date.",
            "x-field-id": "VERIFY:VerificationLicence.issued_on"
          },
          "expires_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported expiry date.",
            "x-field-id": "VERIFY:VerificationLicence.expires_on"
          },
          "address_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Licensed premises addresses.",
            "x-field-id": "VERIFY:VerificationLicence.address_ids"
          },
          "conditions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Explicit licence restrictions or conditions.",
            "x-field-id": "VERIFY:VerificationLicence.conditions"
          },
          "classification_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Registry classifications, such as WSIB classes; preserve source scheme.",
            "x-field-id": "VERIFY:VerificationLicence.classification_codes"
          },
          "match_score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry candidate similarity only.",
            "x-field-id": "VERIFY:VerificationLicence.match_score"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "registry",
          "authority",
          "country",
          "jurisdiction",
          "identifier",
          "legal_name",
          "licence_types",
          "status",
          "issued_on",
          "expires_on",
          "address_ids",
          "conditions",
          "classification_codes",
          "match_score"
        ],
        "additionalProperties": false,
        "description": "A licence observation is scoped to its authority and matching entity."
      },
      "VerificationFiling": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationFiling.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationFiling.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationFiling.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationFiling.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationFiling.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationFiling.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationFiling.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationFiling.supplemental_facts"
          },
          "kind": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Incorporation, name/structure change, annual return, director change or source event type.",
            "x-field-id": "VERIFY:VerificationFiling.kind"
          },
          "filed_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Filing date.",
            "x-field-id": "VERIFY:VerificationFiling.filed_on"
          },
          "effective_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Effective date if different.",
            "x-field-id": "VERIFY:VerificationFiling.effective_on"
          },
          "period_year": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Year covered by the filing, not the filing calendar year.",
            "x-field-id": "VERIFY:VerificationFiling.period_year"
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Filed, outstanding or source status.",
            "x-field-id": "VERIFY:VerificationFiling.status"
          },
          "reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Filing number or source attachment barcode.",
            "x-field-id": "VERIFY:VerificationFiling.reference"
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Controlled references to report pages and original attachments.",
            "x-field-id": "VERIFY:VerificationFiling.document_ids"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "filed_on",
          "effective_on",
          "period_year",
          "status",
          "reference",
          "document_ids"
        ],
        "additionalProperties": false,
        "description": "Corporate filing events and missing annual returns retain their dates and evidence."
      },
      "VerificationCorporateStructure": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationCorporateStructure.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationCorporateStructure.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationCorporateStructure.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationCorporateStructure.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationCorporateStructure.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.supplemental_facts"
          },
          "share_classes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].name",
                  "description": "Name. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].description",
                  "description": "Description. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "authorized_quantity": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].authorized_quantity",
                  "description": "Authorized number of shares in this class; null for unquantified or unknown amounts."
                },
                "unlimited": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].unlimited",
                  "description": "Whether the governing articles explicitly authorize an unlimited number of this share class."
                },
                "issued_quantity": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].issued_quantity",
                  "description": "Number of this class reported as issued, not inferred from authorized capital."
                },
                "voting_rights": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].voting_rights",
                  "description": "Source wording describing voting rights attached to this share class."
                },
                "votes_per_share": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].votes_per_share",
                  "description": "Number of votes per share in this class, represented as a decimal string."
                },
                "nominal_value": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Money"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].nominal_value",
                  "description": "Nominal value. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "dividend_rights": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].dividend_rights",
                  "description": "Source wording describing dividend rights and priorities."
                },
                "liquidation_rights": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].liquidation_rights",
                  "description": "Source wording describing distribution priorities on liquidation."
                },
                "redemption_terms": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].redemption_terms",
                  "description": "Source wording describing redemption rights or obligations."
                },
                "evidence": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VerificationEvidence"
                  },
                  "minItems": 1,
                  "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes[].evidence",
                  "description": "Exact evidence records and source-document locations."
                }
              },
              "required": [
                "name",
                "description",
                "authorized_quantity",
                "unlimited",
                "issued_quantity",
                "voting_rights",
                "votes_per_share",
                "nominal_value",
                "dividend_rights",
                "liquidation_rights",
                "redemption_terms",
                "evidence"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationCorporateStructure.share_classes",
            "description": "Share classes. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "share_transfer_restrictions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Source restrictions, with evidence; not inferred from legal form.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.share_transfer_restrictions"
          },
          "minimum_directors": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Minimum allowed directors.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.minimum_directors"
          },
          "maximum_directors": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Maximum allowed directors.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.maximum_directors"
          },
          "permitted_activities": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Expressly permitted/restricted-to business activities.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.permitted_activities"
          },
          "prohibited_activities": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Expressly prohibited/restricted-from activities.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.prohibited_activities"
          },
          "other_provisions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Material sourced governing provisions.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.other_provisions"
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Articles, schedules, amendments and source report references.",
            "x-field-id": "VERIFY:VerificationCorporateStructure.document_ids"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "share_classes",
          "share_transfer_restrictions",
          "minimum_directors",
          "maximum_directors",
          "permitted_activities",
          "prohibited_activities",
          "other_provisions",
          "document_ids"
        ],
        "additionalProperties": false,
        "description": "Governing articles and capital structure; extracted provisions are not legal conclusions."
      },
      "VerificationPublicRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationPublicRecord.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationPublicRecord.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationPublicRecord.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationPublicRecord.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationPublicRecord.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationPublicRecord.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationPublicRecord.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationPublicRecord.supplemental_facts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "lien",
              "judgment",
              "litigation",
              "bankruptcy",
              "fraud_consortium",
              "regulatory_action",
              "other"
            ],
            "x-field-id": "VERIFY:VerificationPublicRecord.kind",
            "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "match_status": {
            "type": "string",
            "enum": [
              "candidate",
              "confirmed",
              "excluded",
              "unresolved"
            ],
            "x-field-id": "VERIFY:VerificationPublicRecord.match_status",
            "description": "Match status. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "match_score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider match confidence, not a default probability.",
            "x-field-id": "VERIFY:VerificationPublicRecord.match_score"
          },
          "reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Filing, case, docket or source report identifier.",
            "x-field-id": "VERIFY:VerificationPublicRecord.reference"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Search/result jurisdiction.",
            "x-field-id": "VERIFY:VerificationPublicRecord.jurisdiction"
          },
          "authority": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Court, registry or reporting authority.",
            "x-field-id": "VERIFY:VerificationPublicRecord.authority"
          },
          "title": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Case or filing title.",
            "x-field-id": "VERIFY:VerificationPublicRecord.title"
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original current record status.",
            "x-field-id": "VERIFY:VerificationPublicRecord.status"
          },
          "normalized_status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized lifecycle state with source meaning preserved.",
            "x-field-id": "VERIFY:VerificationPublicRecord.normalized_status"
          },
          "filed_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Filing date.",
            "x-field-id": "VERIFY:VerificationPublicRecord.filed_on"
          },
          "closed_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Closure date.",
            "x-field-id": "VERIFY:VerificationPublicRecord.closed_on"
          },
          "lapses_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Lien lapse/expiry date.",
            "x-field-id": "VERIFY:VerificationPublicRecord.lapses_on"
          },
          "record_type": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "UCC/PPSA lien type, bankruptcy chapter or case type.",
            "x-field-id": "VERIFY:VerificationPublicRecord.record_type"
          },
          "parties": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationPublicRecord.parties[].name",
                  "description": "Name. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "role": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationPublicRecord.parties[].role",
                  "description": "Role. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "subject_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationPublicRecord.parties[].subject_id",
                  "description": "Subject id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "address_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationPublicRecord.parties[].address_id",
                  "description": "Address id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                }
              },
              "required": [
                "name",
                "role",
                "subject_id",
                "address_id"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationPublicRecord.parties",
            "description": "Parties. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "amount": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Money"
              },
              {
                "type": "null"
              }
            ],
            "description": "Supported claim or lien amount; null if amount or currency is unknown.",
            "x-field-id": "VERIFY:VerificationPublicRecord.amount"
          },
          "collateral": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Original collateral descriptions and classifications.",
            "x-field-id": "VERIFY:VerificationPublicRecord.collateral"
          },
          "amendments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "reference": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationPublicRecord.amendments[].reference",
                  "description": "Reference. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "kind": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationPublicRecord.amendments[].kind",
                  "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "filed_on": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "format": "date"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationPublicRecord.amendments[].filed_on",
                  "description": "Filed on. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "document_ids": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "x-field-id": "VERIFY:VerificationPublicRecord.amendments[].document_ids",
                  "description": "Document ids. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                }
              },
              "required": [
                "reference",
                "kind",
                "filed_on",
                "document_ids"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationPublicRecord.amendments",
            "description": "Amendments. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "format": "date"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationPublicRecord.events[].date",
                  "description": "Date. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationPublicRecord.events[].description",
                  "description": "Description. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "document_ids": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "x-field-id": "VERIFY:VerificationPublicRecord.events[].document_ids",
                  "description": "Document ids. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                }
              },
              "required": [
                "date",
                "description",
                "document_ids"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationPublicRecord.events",
            "description": "Events. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "consortium_observation": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "reported_on": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "format": "date"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation.reported_on",
                    "description": "Reported on. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "product_type": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation.product_type",
                    "description": "Product type. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "opened_on": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "format": "date"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation.opened_on",
                    "description": "Opened on. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "closed_on": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "format": "date"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation.closed_on",
                    "description": "Closed on. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "closure_reason": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation.closure_reason",
                    "description": "Closure reason. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "first_payment_default": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation.first_payment_default",
                    "description": "First payment default. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "original_amount": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/Money"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation.original_amount",
                    "description": "Original amount. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  },
                  "charge_off_amount": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/Money"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation.charge_off_amount",
                    "description": "Charge off amount. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                  }
                },
                "required": [
                  "reported_on",
                  "product_type",
                  "opened_on",
                  "closed_on",
                  "closure_reason",
                  "first_payment_default",
                  "original_amount",
                  "charge_off_amount"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Licensed attributed report, not independently established fraud.",
            "x-field-id": "VERIFY:VerificationPublicRecord.consortium_observation"
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Controlled filing, docket, exhibit and certificate references.",
            "x-field-id": "VERIFY:VerificationPublicRecord.document_ids"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "match_status",
          "match_score",
          "reference",
          "jurisdiction",
          "authority",
          "title",
          "status",
          "normalized_status",
          "filed_on",
          "closed_on",
          "lapses_on",
          "record_type",
          "parties",
          "amount",
          "collateral",
          "amendments",
          "events",
          "consortium_observation",
          "document_ids"
        ],
        "additionalProperties": false,
        "description": "Sourced legal records and licensed fraud-consortium observations; candidates are not findings of liability or fraud."
      },
      "VerificationOnlinePresence": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationOnlinePresence.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationOnlinePresence.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationOnlinePresence.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationOnlinePresence.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationOnlinePresence.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.supplemental_facts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "website",
              "directory",
              "review_profile",
              "business_social"
            ],
            "x-field-id": "VERIFY:VerificationOnlinePresence.kind",
            "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "url": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Public business source URL.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.url"
          },
          "platform": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Source directory, review platform or business social service.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.platform"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Business name or account handle.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.name"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Source description and stated limitations.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.summary"
          },
          "match": {
            "type": "string",
            "enum": [
              "matched",
              "partial",
              "not_matched",
              "unresolved"
            ],
            "x-field-id": "VERIFY:VerificationOnlinePresence.match",
            "description": "Match. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "confidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source confidence in entity association.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.confidence"
          },
          "redirects": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Observed redirect URLs.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.redirects"
          },
          "parked": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether the source classified the site as parked.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.parked"
          },
          "ssl_valid": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed TLS validity, not proof of a legitimate business.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.ssl_valid"
          },
          "domain_registered_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Domain creation date when reported.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.domain_registered_on"
          },
          "domain_expires_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Domain expiry date.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.domain_expires_on"
          },
          "domain_registrar": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported registrar.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.domain_registrar"
          },
          "operating_status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported open/closed/build status.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.operating_status"
          },
          "rating": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original review rating; interpretation uses rating_scale_max.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.rating"
          },
          "rating_scale_max": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Known maximum rating scale; null when unspecified.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.rating_scale_max"
          },
          "review_count": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Number of reviews returned/reported by the source.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.review_count"
          },
          "business_contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Public contact and directory facts for consistency checks.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.business_contacts"
          },
          "industry_predictions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Inferred industry scheme/code and confidence; never overwrite registry classification.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.industry_predictions"
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Authorized screenshots or reports stored as documents.",
            "x-field-id": "VERIFY:VerificationOnlinePresence.document_ids"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "url",
          "platform",
          "name",
          "summary",
          "match",
          "confidence",
          "redirects",
          "parked",
          "ssl_valid",
          "domain_registered_on",
          "domain_expires_on",
          "domain_registrar",
          "operating_status",
          "rating",
          "rating_scale_max",
          "review_count",
          "business_contacts",
          "industry_predictions",
          "document_ids"
        ],
        "additionalProperties": false,
        "description": "Business presence and observed inconsistencies; never private personal social profiling."
      },
      "VerificationContactCheck": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationContactCheck.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationContactCheck.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationContactCheck.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationContactCheck.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationContactCheck.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationContactCheck.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationContactCheck.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationContactCheck.supplemental_facts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "email",
              "phone"
            ],
            "x-field-id": "VERIFY:VerificationContactCheck.kind",
            "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Permitted email or phone, masked when required.",
            "x-field-id": "VERIFY:VerificationContactCheck.value"
          },
          "method": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "OTP, silent network, database, syntax or deliverability method.",
            "x-field-id": "VERIFY:VerificationContactCheck.method"
          },
          "outcome": {
            "type": "string",
            "enum": [
              "passed",
              "failed",
              "review_required",
              "inconclusive",
              "not_performed"
            ],
            "x-field-id": "VERIFY:VerificationContactCheck.outcome",
            "description": "Verification/compliance result, not a lending decision."
          },
          "verified_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual control-verification timestamp.",
            "x-field-id": "VERIFY:VerificationContactCheck.verified_at"
          },
          "attempts": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Completed verification attempts.",
            "x-field-id": "VERIFY:VerificationContactCheck.attempts"
          },
          "deliverable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source deliverability result.",
            "x-field-id": "VERIFY:VerificationContactCheck.deliverable"
          },
          "disposable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Disposable contact indicator.",
            "x-field-id": "VERIFY:VerificationContactCheck.disposable"
          },
          "virtual": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Virtual/VoIP phone indicator.",
            "x-field-id": "VERIFY:VerificationContactCheck.virtual"
          },
          "free_domain": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Free email-domain indicator.",
            "x-field-id": "VERIFY:VerificationContactCheck.free_domain"
          },
          "carrier": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Phone carrier.",
            "x-field-id": "VERIFY:VerificationContactCheck.carrier"
          },
          "carrier_type": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Mobile, landline, VoIP or source type.",
            "x-field-id": "VERIFY:VerificationContactCheck.carrier_type"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Phone country.",
            "x-field-id": "VERIFY:VerificationContactCheck.country"
          },
          "ported": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source porting signal.",
            "x-field-id": "VERIFY:VerificationContactCheck.ported"
          },
          "recently_ported": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Recent porting signal with source period in supplemental facts.",
            "x-field-id": "VERIFY:VerificationContactCheck.recently_ported"
          },
          "breached": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Exposure signal; not evidence the borrower committed fraud.",
            "x-field-id": "VERIFY:VerificationContactCheck.breached"
          },
          "breach_count": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-reported exposure count.",
            "x-field-id": "VERIFY:VerificationContactCheck.breach_count"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Source reasons and limitations.",
            "x-field-id": "VERIFY:VerificationContactCheck.reason_codes"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "value",
          "method",
          "outcome",
          "verified_at",
          "attempts",
          "deliverable",
          "disposable",
          "virtual",
          "free_domain",
          "carrier",
          "carrier_type",
          "country",
          "ported",
          "recently_ported",
          "breached",
          "breach_count",
          "reason_codes"
        ],
        "additionalProperties": false,
        "description": "Contact validation and security signals; an OTP proves control at that time, not identity by itself."
      },
      "VerificationDeviceCheck": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationDeviceCheck.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationDeviceCheck.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationDeviceCheck.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationDeviceCheck.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationDeviceCheck.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.supplemental_facts"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed coarse country.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.country"
          },
          "region": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed coarse region.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.region"
          },
          "city": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed city when disclosure is permitted.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.city"
          },
          "device_class": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Device/platform class.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.device_class"
          },
          "browser_family": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Browser family.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.browser_family"
          },
          "os_family": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Operating-system family.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.os_family"
          },
          "network_organization": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Source network/ISP organization.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.network_organization"
          },
          "vpn_or_tor": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Anonymizer signal.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.vpn_or_tor"
          },
          "data_center": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Hosting/data-center network signal.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.data_center"
          },
          "location_permission": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Consent/permission outcome, separate from location outcome.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.location_permission"
          },
          "location_integrity": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-reported integrity state.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.location_integrity"
          },
          "document_location_consistent": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported location consistency with identity/address evidence.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.document_location_consistent"
          },
          "ip_location_consistent": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported device/IP consistency.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.ip_location_consistent"
          },
          "geofence_result": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Result against an explicitly configured permitted area.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.geofence_result"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Original source warning codes.",
            "x-field-id": "VERIFY:VerificationDeviceCheck.reason_codes"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "country",
          "region",
          "city",
          "device_class",
          "browser_family",
          "os_family",
          "network_organization",
          "vpn_or_tor",
          "data_center",
          "location_permission",
          "location_integrity",
          "document_location_consistent",
          "ip_location_consistent",
          "geofence_result",
          "reason_codes"
        ],
        "additionalProperties": false,
        "description": "Coarse security and location signals for consistency; no precise device coordinates or stable fingerprint in default responses."
      },
      "VerificationDocumentCheck": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationDocumentCheck.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationDocumentCheck.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationDocumentCheck.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationDocumentCheck.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationDocumentCheck.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.supplemental_facts"
          },
          "document_id": {
            "type": "string",
            "minLength": 1,
            "description": "AMLOK document ID.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.document_id"
          },
          "document_type": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized document class.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.document_type"
          },
          "document_group": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Required document group such as incorporation, ownership or address.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.document_group"
          },
          "issuer": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed issuing entity.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.issuer"
          },
          "language": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Detected language.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.language"
          },
          "issued_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Document issue date.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.issued_on"
          },
          "expires_on": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Document expiry date.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.expires_on"
          },
          "required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether a configured requirement required this document.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.required"
          },
          "outcome": {
            "type": "string",
            "enum": [
              "passed",
              "failed",
              "review_required",
              "inconclusive",
              "not_performed"
            ],
            "x-field-id": "VERIFY:VerificationDocumentCheck.outcome",
            "description": "Verification/compliance result, not a lending decision."
          },
          "tamper_result": {
            "type": "string",
            "enum": [
              "not_detected",
              "suspected",
              "inconclusive",
              "not_checked"
            ],
            "x-field-id": "VERIFY:VerificationDocumentCheck.tamper_result",
            "description": "Tamper result. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "name_comparison_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Related field-comparison IDs.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.name_comparison_ids"
          },
          "extracted_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Allowlisted extracted values; page/field provenance must be preserved.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.extracted_fields"
          },
          "cross_checks": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Comparisons with registry, supplied and other document evidence.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.cross_checks"
          },
          "document_metadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted format, page, file and quality facts.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.document_metadata"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Source extraction, tamper or validation reasons.",
            "x-field-id": "VERIFY:VerificationDocumentCheck.reason_codes"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "document_id",
          "document_type",
          "document_group",
          "issuer",
          "language",
          "issued_on",
          "expires_on",
          "required",
          "outcome",
          "tamper_result",
          "name_comparison_ids",
          "extracted_fields",
          "cross_checks",
          "document_metadata",
          "reason_codes"
        ],
        "additionalProperties": false,
        "description": "Source fields extracted from supporting documents with page evidence and verification results."
      },
      "VerificationBankAccountCheck": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationBankAccountCheck.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationBankAccountCheck.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationBankAccountCheck.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationBankAccountCheck.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.supplemental_facts"
          },
          "account_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "AMLOK bank-account ID when resolved.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.account_reference"
          },
          "masked_account_number": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Masked account identifier.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.masked_account_number"
          },
          "institution_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed institution.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.institution_name"
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Account country.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.country"
          },
          "holder_names": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Permitted account-holder names.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.holder_names"
          },
          "reference_identity_name": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Name compared with the account owner.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.reference_identity_name"
          },
          "method": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Open banking, account check or source verification method.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.method"
          },
          "result": {
            "type": "string",
            "enum": [
              "matched",
              "partial_match",
              "not_matched",
              "unavailable",
              "not_checked"
            ],
            "x-field-id": "VERIFY:VerificationBankAccountCheck.result",
            "description": "Result. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "match_score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original account-holder comparison score.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.match_score"
          },
          "verified_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual verification timestamp.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.verified_at"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Coverage, abandonment, mismatch or other limitations.",
            "x-field-id": "VERIFY:VerificationBankAccountCheck.reason_codes"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "account_reference",
          "masked_account_number",
          "institution_name",
          "country",
          "holder_names",
          "reference_identity_name",
          "method",
          "result",
          "match_score",
          "verified_at",
          "reason_codes"
        ],
        "additionalProperties": false,
        "description": "Account ownership output uses masked identifiers; financial data remains in its existing normalized resources."
      },
      "VerificationQuestionnaire": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationQuestionnaire.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationQuestionnaire.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.supplemental_facts"
          },
          "questionnaire_reference": {
            "type": "string",
            "minLength": 1,
            "description": "Source questionnaire identifier.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.questionnaire_reference"
          },
          "version": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact template version used for these answers.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.version"
          },
          "group_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Stable identifier shared by questionnaire versions.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.group_reference"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Questionnaire title.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.title"
          },
          "language": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Language of the returned labels/answers.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.language"
          },
          "provider_status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Original questionnaire status; not proof that its answers were independently verified.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.provider_status"
          },
          "submitted_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual submission time when supplied.",
            "x-field-id": "VERIFY:VerificationQuestionnaire.submitted_at"
          },
          "answers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "question_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Stable source question ID.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].question_id"
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Source question label.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].title"
                },
                "answer_type": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Source element type, such as text, choice, multi-choice or file.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].answer_type"
                },
                "required": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].required",
                  "description": "Whether this field or check was required under the effective source policy; null means not established."
                },
                "instance_path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Source pointer identifying this repeatable/group answer instance.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].instance_path"
                },
                "value": {
                  "type": [
                    "string",
                    "number",
                    "boolean",
                    "null"
                  ],
                  "description": "Single permitted answer; null for unanswered, multi-value or file answers.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].value"
                },
                "values": {
                  "type": "array",
                  "items": {
                    "type": [
                      "string",
                      "number",
                      "boolean",
                      "null"
                    ],
                    "description": "Authorized scalar source value. Structured extras use named scalar facts, not undocumented nested payloads."
                  },
                  "description": "Permitted multiple-choice/repeatable scalar values in source order.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].values"
                },
                "document_ids": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "description": "Authorized uploaded files, converted to AMLOK document IDs; no presigned source URLs.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].document_ids"
                },
                "missing_reason": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Required reason for an unanswered question; an omitted layout element is not a missing answer.",
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].missing_reason"
                },
                "evidence": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VerificationEvidence"
                  },
                  "minItems": 1,
                  "x-field-id": "VERIFY:VerificationQuestionnaire.answers[].evidence",
                  "description": "Exact evidence records and source-document locations."
                }
              },
              "required": [
                "question_id",
                "title",
                "answer_type",
                "required",
                "instance_path",
                "value",
                "values",
                "document_ids",
                "missing_reason",
                "evidence"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationQuestionnaire.answers",
            "description": "Answers. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "questionnaire_reference",
          "version",
          "group_reference",
          "title",
          "language",
          "provider_status",
          "submitted_at",
          "answers"
        ],
        "additionalProperties": false,
        "description": "Borrower declarations remain declared even when the form or source session is approved."
      },
      "VerificationSignature": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationSignature.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationSignature.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationSignature.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationSignature.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationSignature.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationSignature.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationSignature.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationSignature.supplemental_facts"
          },
          "signer_subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized signer identity reference.",
            "x-field-id": "VERIFY:VerificationSignature.signer_subject_id"
          },
          "capacity": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Self, company or source capacity.",
            "x-field-id": "VERIFY:VerificationSignature.capacity"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Signing roles.",
            "x-field-id": "VERIFY:VerificationSignature.roles"
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Signing lifecycle status.",
            "x-field-id": "VERIFY:VerificationSignature.status"
          },
          "validation": {
            "type": "string",
            "enum": [
              "valid",
              "invalid",
              "indeterminate",
              "not_checked"
            ],
            "x-field-id": "VERIFY:VerificationSignature.validation",
            "description": "Validation. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "signature_level": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Source signature level/profile.",
            "x-field-id": "VERIFY:VerificationSignature.signature_level"
          },
          "signed_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Signature time.",
            "x-field-id": "VERIFY:VerificationSignature.signed_at"
          },
          "consented_at": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electronic-signature consent time.",
            "x-field-id": "VERIFY:VerificationSignature.consented_at"
          },
          "certificate_issuer": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Signing certificate issuer.",
            "x-field-id": "VERIFY:VerificationSignature.certificate_issuer"
          },
          "certificate_valid": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Certificate validation result.",
            "x-field-id": "VERIFY:VerificationSignature.certificate_valid"
          },
          "timestamp_valid": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Trusted timestamp verification.",
            "x-field-id": "VERIFY:VerificationSignature.timestamp_valid"
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Signed documents and validation/evidence reports.",
            "x-field-id": "VERIFY:VerificationSignature.document_ids"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted signed values, labels and page references.",
            "x-field-id": "VERIFY:VerificationSignature.fields"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Validation warnings and reasons.",
            "x-field-id": "VERIFY:VerificationSignature.reason_codes"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "signer_subject_id",
          "capacity",
          "roles",
          "status",
          "validation",
          "signature_level",
          "signed_at",
          "consented_at",
          "certificate_issuer",
          "certificate_valid",
          "timestamp_valid",
          "document_ids",
          "fields",
          "reason_codes"
        ],
        "additionalProperties": false,
        "description": "Signature and authority evidence, not an AMLOK conclusion about legal enforceability."
      },
      "VerificationFieldComparison": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationFieldComparison.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationFieldComparison.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationFieldComparison.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationFieldComparison.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationFieldComparison.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationFieldComparison.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationFieldComparison.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationFieldComparison.supplemental_facts"
          },
          "field": {
            "type": "string",
            "minLength": 1,
            "description": "Normalized field being compared, for example business.legal_name or person.date_of_birth.",
            "x-field-id": "VERIFY:VerificationFieldComparison.field"
          },
          "provided": {
            "type": [
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Authorized scalar source value. Structured extras use named scalar facts, not undocumented nested payloads.",
            "x-field-id": "VERIFY:VerificationFieldComparison.provided"
          },
          "observed": {
            "type": [
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Authorized scalar source value. Structured extras use named scalar facts, not undocumented nested payloads.",
            "x-field-id": "VERIFY:VerificationFieldComparison.observed"
          },
          "normalized_provided": {
            "type": [
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Authorized scalar source value. Structured extras use named scalar facts, not undocumented nested payloads.",
            "x-field-id": "VERIFY:VerificationFieldComparison.normalized_provided"
          },
          "normalized_observed": {
            "type": [
              "string",
              "number",
              "boolean",
              "null"
            ],
            "description": "Authorized scalar source value. Structured extras use named scalar facts, not undocumented nested payloads.",
            "x-field-id": "VERIFY:VerificationFieldComparison.normalized_observed"
          },
          "result": {
            "type": "string",
            "enum": [
              "matched",
              "partial_match",
              "not_matched",
              "not_submitted",
              "not_checked",
              "source_unavailable",
              "inconclusive"
            ],
            "x-field-id": "VERIFY:VerificationFieldComparison.result",
            "description": "Result. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original comparison scale.",
            "x-field-id": "VERIFY:VerificationFieldComparison.score"
          },
          "threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Effective source threshold in the score scale.",
            "x-field-id": "VERIFY:VerificationFieldComparison.threshold"
          },
          "required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether this field was required by the effective check policy.",
            "x-field-id": "VERIFY:VerificationFieldComparison.required"
          },
          "affects_outcome": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether this comparison affected the provider verification outcome.",
            "x-field-id": "VERIFY:VerificationFieldComparison.affects_outcome"
          },
          "normalization": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Comparison transformation, such as punctuation/case folding; no silent transliteration assumption.",
            "x-field-id": "VERIFY:VerificationFieldComparison.normalization"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "field",
          "provided",
          "observed",
          "normalized_provided",
          "normalized_observed",
          "result",
          "score",
          "threshold",
          "required",
          "affects_outcome",
          "normalization"
        ],
        "additionalProperties": false,
        "description": "Preserves not-submitted, not-checked and source-unavailable distinctly from mismatch."
      },
      "VerificationSourceScore": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationSourceScore.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationSourceScore.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationSourceScore.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationSourceScore.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationSourceScore.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationSourceScore.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationSourceScore.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationSourceScore.supplemental_facts"
          },
          "kind": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider score category, such as identity_match, fraud, KYB or risk.",
            "x-field-id": "VERIFY:VerificationSourceScore.kind"
          },
          "score": {
            "$ref": "#/components/schemas/VerificationScore",
            "x-field-id": "VERIFY:VerificationSourceScore.score",
            "description": "Score. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Returned score drivers or codes.",
            "x-field-id": "VERIFY:VerificationSourceScore.reason_codes"
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Meaning, calibration and comparability limitations.",
            "x-field-id": "VERIFY:VerificationSourceScore.limitations"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "score",
          "reason_codes",
          "limitations"
        ],
        "additionalProperties": false,
        "description": "Original provider rating with source-defined scope and scale, separate from AMLOK metric calculations."
      },
      "VerificationDuplicateCheck": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Stable AMLOK item ID within this assessment.",
            "x-field-id": "VERIFY:VerificationDuplicateCheck.id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized business/person subject ID, as returned on the borrower or an active related-party association; not the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationDuplicateCheck.subject_id"
          },
          "provenance": {
            "$ref": "#/components/schemas/VerificationProvenance",
            "x-field-id": "VERIFY:VerificationDuplicateCheck.provenance",
            "description": "Exact source, time, basis and evidence for this observation."
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "RFC 6901 pointer relative to this item.",
                  "x-field-id": "VERIFY:VerificationDuplicateCheck.missing_fields[].path"
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason",
                  "x-field-id": "VERIFY:VerificationDuplicateCheck.missing_fields[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Why this field is absent or null.",
                  "x-field-id": "VERIFY:VerificationDuplicateCheck.missing_fields[].description"
                }
              },
              "required": [
                "path",
                "reason",
                "description"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationDuplicateCheck.missing_fields",
            "description": "Every absent or null required fact is explained by a pointer and a missing-data reason."
          },
          "supplemental_facts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFact"
            },
            "description": "Permitted source-specific facts that do not have a canonical field.",
            "x-field-id": "VERIFY:VerificationDuplicateCheck.supplemental_facts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "document",
              "face",
              "email",
              "phone",
              "entity"
            ],
            "x-field-id": "VERIFY:VerificationDuplicateCheck.kind",
            "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "outcome": {
            "type": "string",
            "enum": [
              "no_match",
              "potential_match",
              "inconclusive",
              "not_checked"
            ],
            "x-field-id": "VERIFY:VerificationDuplicateCheck.outcome",
            "description": "Verification/compliance result, not a lending decision."
          },
          "reported_match_count": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider total when known.",
            "x-field-id": "VERIFY:VerificationDuplicateCheck.reported_match_count"
          },
          "authorized_matches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "subject_id": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationDuplicateCheck.authorized_matches[].subject_id",
                  "description": "Subject id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "assessment_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationDuplicateCheck.authorized_matches[].assessment_id",
                  "description": "Assessment id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "similarity": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/VerificationScore"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationDuplicateCheck.authorized_matches[].similarity",
                  "description": "Similarity. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "observed_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationDuplicateCheck.authorized_matches[].observed_at",
                  "description": "Observed at. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "list_disposition": {
                  "type": "string",
                  "enum": [
                    "none",
                    "allowlisted",
                    "blocklisted",
                    "unknown"
                  ],
                  "x-field-id": "VERIFY:VerificationDuplicateCheck.authorized_matches[].list_disposition",
                  "description": "List disposition. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                }
              },
              "required": [
                "subject_id",
                "assessment_id",
                "similarity",
                "observed_at",
                "list_disposition"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationDuplicateCheck.authorized_matches",
            "description": "Authorized matches. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "withheld_match_count": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "Count of matches withheld by authorization, if permitted to disclose.",
            "x-field-id": "VERIFY:VerificationDuplicateCheck.withheld_match_count"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Match and coverage limitations.",
            "x-field-id": "VERIFY:VerificationDuplicateCheck.reason_codes"
          }
        },
        "required": [
          "id",
          "subject_id",
          "provenance",
          "missing_fields",
          "supplemental_facts",
          "kind",
          "outcome",
          "reported_match_count",
          "authorized_matches",
          "withheld_match_count",
          "reason_codes"
        ],
        "additionalProperties": false,
        "description": "Only permitted same-workspace duplicate signals; never cross-tenant identity disclosures."
      },
      "VerificationResultSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationResultSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationResultSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationResultSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationResultSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationResult"
            },
            "x-field-id": "VERIFY:VerificationResultSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Execution, result, reasons and provider decisions for every requested check.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationBusinessSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationBusinessSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationBusinessSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationBusinessSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationBusinessSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationBusiness"
            },
            "x-field-id": "VERIFY:VerificationBusinessSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Candidates and resolved legal entities, without equating a search hit with verification.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationPersonSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationPersonSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationPersonSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationPersonSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationPersonSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationPerson"
            },
            "x-field-id": "VERIFY:VerificationPersonSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Authorized borrower and related-person identity attributes.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationRegistrationSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationRegistrationSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationRegistrationSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationRegistrationSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationRegistrationSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationRegistration"
            },
            "x-field-id": "VERIFY:VerificationRegistrationSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Legal status, good standing, registration authorities and annual-return compliance.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationAddressSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationAddressSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationAddressSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationAddressSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationAddressSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationAddress"
            },
            "x-field-id": "VERIFY:VerificationAddressSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Registered, records, operating, service and residential addresses and validation.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationRelationshipSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationRelationshipSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationRelationshipSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationRelationshipSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationRelationshipSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationRelationship"
            },
            "x-field-id": "VERIFY:VerificationRelationshipSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Directors, officers, agents, signatories, parent entities and guarantors.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationOwnershipSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationOwnershipSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationOwnershipSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationOwnershipSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationOwnershipSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationOwnership"
            },
            "x-field-id": "VERIFY:VerificationOwnershipSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Direct, indirect, economic and voting interests, with unresolved ownership explicit.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationIdentityDocumentSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationIdentityDocumentSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationIdentityDocumentSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationIdentityDocumentSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationIdentityDocumentSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationIdentityDocument"
            },
            "x-field-id": "VERIFY:VerificationIdentityDocumentSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Document identity, authenticity, expiry, NFC and wallet assurance.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationBiometricSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationBiometricSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationBiometricSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationBiometricSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationBiometricSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationBiometric"
            },
            "x-field-id": "VERIFY:VerificationBiometricSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Liveness and face comparison results without biometric media or templates.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationScreeningSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationScreeningSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationScreeningSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationScreeningSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationScreeningSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationScreening"
            },
            "x-field-id": "VERIFY:VerificationScreeningSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Sanctions, PEP, watchlists and adverse-media candidates with review disposition.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationTaxCheckSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationTaxCheckSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationTaxCheckSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationTaxCheckSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationTaxCheckSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationTaxCheck"
            },
            "x-field-id": "VERIFY:VerificationTaxCheckSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "TIN, EIN, BN and VAT validation, distinct from tax payment compliance.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationLicenceSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationLicenceSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationLicenceSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationLicenceSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationLicenceSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationLicence"
            },
            "x-field-id": "VERIFY:VerificationLicenceSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Jurisdiction-specific licences, authorizations, classifications and registration status.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationFilingSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationFilingSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationFilingSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationFilingSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationFilingSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFiling"
            },
            "x-field-id": "VERIFY:VerificationFilingSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Dated corporate events, annual returns and document references.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationCorporateStructureSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationCorporateStructureSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationCorporateStructureSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationCorporateStructureSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationCorporateStructureSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationCorporateStructure"
            },
            "x-field-id": "VERIFY:VerificationCorporateStructureSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Share classes, voting rights, restrictions, capital and governing provisions.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationPublicRecordSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationPublicRecordSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationPublicRecordSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationPublicRecordSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationPublicRecordSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationPublicRecord"
            },
            "x-field-id": "VERIFY:VerificationPublicRecordSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Liens, judgments, litigation, bankruptcy and licensed consortium observations.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationOnlinePresenceSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationOnlinePresenceSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationOnlinePresenceSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationOnlinePresenceSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationOnlinePresenceSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationOnlinePresence"
            },
            "x-field-id": "VERIFY:VerificationOnlinePresenceSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Business websites, directories, reviews and business social profiles.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationContactCheckSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationContactCheckSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationContactCheckSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationContactCheckSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationContactCheckSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationContactCheck"
            },
            "x-field-id": "VERIFY:VerificationContactCheckSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Email and phone verification, deliverability, carrier and fraud signals.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationDeviceCheckSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationDeviceCheckSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationDeviceCheckSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationDeviceCheckSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationDeviceCheckSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationDeviceCheck"
            },
            "x-field-id": "VERIFY:VerificationDeviceCheckSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Coarse location, network integrity and consistency observations.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationDocumentCheckSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationDocumentCheckSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationDocumentCheckSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationDocumentCheckSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationDocumentCheckSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationDocumentCheck"
            },
            "x-field-id": "VERIFY:VerificationDocumentCheckSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Document extraction, tamper and cross-document consistency results.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationBankAccountCheckSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationBankAccountCheckSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationBankAccountCheckSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationBankAccountCheckSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationBankAccountCheckSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationBankAccountCheck"
            },
            "x-field-id": "VERIFY:VerificationBankAccountCheckSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Account-holder matching and verification method, separate from financial analysis.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationQuestionnaireSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationQuestionnaireSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationQuestionnaireSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationQuestionnaireSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationQuestionnaireSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationQuestionnaire"
            },
            "x-field-id": "VERIFY:VerificationQuestionnaireSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Versioned borrower declarations, repeatable answers and file references with declared provenance.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationSignatureSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationSignatureSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationSignatureSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationSignatureSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationSignatureSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationSignature"
            },
            "x-field-id": "VERIFY:VerificationSignatureSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Signer identity, authority, consent and signature validation evidence.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationFieldComparisonSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationFieldComparisonSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationFieldComparisonSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationFieldComparisonSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationFieldComparisonSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationFieldComparison"
            },
            "x-field-id": "VERIFY:VerificationFieldComparisonSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Submitted versus observed values, thresholds and exact matching outcomes.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationSourceScoreSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationSourceScoreSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationSourceScoreSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationSourceScoreSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationSourceScoreSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationSourceScore"
            },
            "x-field-id": "VERIFY:VerificationSourceScoreSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Original provider scales, ratings and reason codes; never an AMLOK credit probability.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationDuplicateCheckSection": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "partial",
              "unavailable",
              "not_applicable"
            ],
            "x-field-id": "VERIFY:VerificationDuplicateCheckSection.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerificationReason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Machine-readable reason for incomplete or inapplicable results.",
            "x-field-id": "VERIFY:VerificationDuplicateCheckSection.reason"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable scope or missing-data explanation.",
            "x-field-id": "VERIFY:VerificationDuplicateCheckSection.explanation"
          },
          "coverage": {
            "$ref": "#/components/schemas/VerificationCoverage",
            "x-field-id": "VERIFY:VerificationDuplicateCheckSection.coverage",
            "description": "Actual requested and completed source scope with limitations."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationDuplicateCheck"
            },
            "x-field-id": "VERIFY:VerificationDuplicateCheckSection.items",
            "description": "All authorized observations in this section, including distinct source observations."
          }
        },
        "required": [
          "status",
          "reason",
          "explanation",
          "coverage",
          "items"
        ],
        "additionalProperties": false,
        "description": "Authorized same-workspace matches with identifiers minimized.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "unavailable",
                    "not_applicable"
                  ]
                }
              }
            },
            "then": {
              "properties": {
                "items": {
                  "maxItems": 0
                },
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "partial"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "$ref": "#/components/schemas/VerificationReason"
                },
                "explanation": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "const": "available"
                }
              }
            },
            "then": {
              "properties": {
                "reason": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "VerificationAssessment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable assessment ID.",
            "x-field-id": "VERIFY:VerificationAssessment.id"
          },
          "borrower_id": {
            "type": "string",
            "minLength": 1,
            "description": "Borrower assessed; related subjects remain explicitly associated.",
            "x-field-id": "VERIFY:VerificationAssessment.borrower_id"
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "description": "The business/person subject_id returned by Get borrower. This is distinct from the borrower resource ID.",
            "x-field-id": "VERIFY:VerificationAssessment.subject_id"
          },
          "definition_version": {
            "const": "2026-11-06.1",
            "x-field-id": "VERIFY:VerificationAssessment.definition_version",
            "description": "Version of the normalized verification field definitions."
          },
          "as_of": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "description": "UTC cutoff for this assessment.",
            "x-field-id": "VERIFY:VerificationAssessment.as_of"
          },
          "status": {
            "type": "string",
            "enum": [
              "complete",
              "partial",
              "unavailable"
            ],
            "x-field-id": "VERIFY:VerificationAssessment.status",
            "description": "State of this specific result; separate from entity legal status and lending decisions."
          },
          "outcome": {
            "type": "string",
            "enum": [
              "passed",
              "failed",
              "review_required",
              "inconclusive",
              "not_performed"
            ],
            "description": "Identity/compliance assessment outcome, not a lending decision.",
            "x-field-id": "VERIFY:VerificationAssessment.outcome"
          },
          "summary": {
            "type": "string",
            "minLength": 1,
            "description": "Human-readable scope, findings and unresolved requirements.",
            "x-field-id": "VERIFY:VerificationAssessment.summary"
          },
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationSource"
            },
            "description": "Sources consulted with actual requested/completed coverage.",
            "x-field-id": "VERIFY:VerificationAssessment.sources"
          },
          "ownership_resolution": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "complete",
                  "partial",
                  "unavailable",
                  "not_applicable"
                ],
                "x-field-id": "VERIFY:VerificationAssessment.ownership_resolution.status",
                "description": "State of this specific result; separate from entity legal status and lending decisions."
              },
              "reason": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ],
                "x-field-id": "VERIFY:VerificationAssessment.ownership_resolution.reason",
                "description": "Explicit explanation code when no complete usable value is available."
              },
              "unresolved_subject_ids": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "x-field-id": "VERIFY:VerificationAssessment.ownership_resolution.unresolved_subject_ids",
                "description": "Related subjects whose identity or ownership chains remain unresolved."
              },
              "ownership_basis": {
                "type": "string",
                "enum": [
                  "economic",
                  "voting",
                  "mixed",
                  "unknown"
                ],
                "x-field-id": "VERIFY:VerificationAssessment.ownership_resolution.ownership_basis",
                "description": "Whether coverage refers to economic equity, voting rights, mixed interests or an unknown basis."
              },
              "known_share": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
                  },
                  {
                    "type": "null"
                  }
                ],
                "x-field-id": "VERIFY:VerificationAssessment.ownership_resolution.known_share",
                "description": "Evidenced fraction of the stated ownership denominator, 0 to 1; null if the denominator is unsupported."
              },
              "unknown_share": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)$"
                  },
                  {
                    "type": "null"
                  }
                ],
                "x-field-id": "VERIFY:VerificationAssessment.ownership_resolution.unknown_share",
                "description": "Unresolved fraction of the same ownership denominator, 0 to 1; null if unsupported."
              }
            },
            "required": [
              "status",
              "reason",
              "unresolved_subject_ids",
              "ownership_basis",
              "known_share",
              "unknown_share"
            ],
            "additionalProperties": false,
            "x-field-id": "VERIFY:VerificationAssessment.ownership_resolution",
            "description": "Whether ownership chains and the stated denominator are fully evidenced."
          },
          "documents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "document_id": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationAssessment.documents[].document_id",
                  "description": "Document id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "identity",
                    "registry_report",
                    "verification_report",
                    "search_report",
                    "articles",
                    "filing",
                    "licence",
                    "court",
                    "signed_document",
                    "other"
                  ],
                  "x-field-id": "VERIFY:VerificationAssessment.documents[].kind",
                  "description": "Kind. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "access": {
                  "type": "string",
                  "enum": [
                    "available",
                    "restricted",
                    "not_retained"
                  ],
                  "x-field-id": "VERIFY:VerificationAssessment.documents[].access",
                  "description": "Access. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                },
                "reason": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "x-field-id": "VERIFY:VerificationAssessment.documents[].reason",
                  "description": "Explicit explanation code when no complete usable value is available."
                },
                "source_id": {
                  "type": "string",
                  "minLength": 1,
                  "x-field-id": "VERIFY:VerificationAssessment.documents[].source_id",
                  "description": "Source id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
                }
              },
              "required": [
                "document_id",
                "kind",
                "access",
                "reason",
                "source_id"
              ],
              "additionalProperties": false
            },
            "x-field-id": "VERIFY:VerificationAssessment.documents",
            "description": "Source files accessible through existing document endpoints with authorization rechecked."
          },
          "checks": {
            "$ref": "#/components/schemas/VerificationResultSection",
            "description": "Execution, result, reasons and provider decisions for every requested check.",
            "x-field-id": "VERIFY:VerificationAssessment.checks"
          },
          "businesses": {
            "$ref": "#/components/schemas/VerificationBusinessSection",
            "description": "Candidates and resolved legal entities, without equating a search hit with verification.",
            "x-field-id": "VERIFY:VerificationAssessment.businesses"
          },
          "persons": {
            "$ref": "#/components/schemas/VerificationPersonSection",
            "description": "Authorized borrower and related-person identity attributes.",
            "x-field-id": "VERIFY:VerificationAssessment.persons"
          },
          "registrations": {
            "$ref": "#/components/schemas/VerificationRegistrationSection",
            "description": "Legal status, good standing, registration authorities and annual-return compliance.",
            "x-field-id": "VERIFY:VerificationAssessment.registrations"
          },
          "addresses": {
            "$ref": "#/components/schemas/VerificationAddressSection",
            "description": "Registered, records, operating, service and residential addresses and validation.",
            "x-field-id": "VERIFY:VerificationAssessment.addresses"
          },
          "relationships": {
            "$ref": "#/components/schemas/VerificationRelationshipSection",
            "description": "Directors, officers, agents, signatories, parent entities and guarantors.",
            "x-field-id": "VERIFY:VerificationAssessment.relationships"
          },
          "ownership": {
            "$ref": "#/components/schemas/VerificationOwnershipSection",
            "description": "Direct, indirect, economic and voting interests, with unresolved ownership explicit.",
            "x-field-id": "VERIFY:VerificationAssessment.ownership"
          },
          "identity_documents": {
            "$ref": "#/components/schemas/VerificationIdentityDocumentSection",
            "description": "Document identity, authenticity, expiry, NFC and wallet assurance.",
            "x-field-id": "VERIFY:VerificationAssessment.identity_documents"
          },
          "biometrics": {
            "$ref": "#/components/schemas/VerificationBiometricSection",
            "description": "Liveness and face comparison results without biometric media or templates.",
            "x-field-id": "VERIFY:VerificationAssessment.biometrics"
          },
          "screenings": {
            "$ref": "#/components/schemas/VerificationScreeningSection",
            "description": "Sanctions, PEP, watchlists and adverse-media candidates with review disposition.",
            "x-field-id": "VERIFY:VerificationAssessment.screenings"
          },
          "tax_checks": {
            "$ref": "#/components/schemas/VerificationTaxCheckSection",
            "description": "TIN, EIN, BN and VAT validation, distinct from tax payment compliance.",
            "x-field-id": "VERIFY:VerificationAssessment.tax_checks"
          },
          "licences": {
            "$ref": "#/components/schemas/VerificationLicenceSection",
            "description": "Jurisdiction-specific licences, authorizations, classifications and registration status.",
            "x-field-id": "VERIFY:VerificationAssessment.licences"
          },
          "filings": {
            "$ref": "#/components/schemas/VerificationFilingSection",
            "description": "Dated corporate events, annual returns and document references.",
            "x-field-id": "VERIFY:VerificationAssessment.filings"
          },
          "corporate_structure": {
            "$ref": "#/components/schemas/VerificationCorporateStructureSection",
            "description": "Share classes, voting rights, restrictions, capital and governing provisions.",
            "x-field-id": "VERIFY:VerificationAssessment.corporate_structure"
          },
          "public_records": {
            "$ref": "#/components/schemas/VerificationPublicRecordSection",
            "description": "Liens, judgments, litigation, bankruptcy and licensed consortium observations.",
            "x-field-id": "VERIFY:VerificationAssessment.public_records"
          },
          "online_presence": {
            "$ref": "#/components/schemas/VerificationOnlinePresenceSection",
            "description": "Business websites, directories, reviews and business social profiles.",
            "x-field-id": "VERIFY:VerificationAssessment.online_presence"
          },
          "contact_checks": {
            "$ref": "#/components/schemas/VerificationContactCheckSection",
            "description": "Email and phone verification, deliverability, carrier and fraud signals.",
            "x-field-id": "VERIFY:VerificationAssessment.contact_checks"
          },
          "device_checks": {
            "$ref": "#/components/schemas/VerificationDeviceCheckSection",
            "description": "Coarse location, network integrity and consistency observations.",
            "x-field-id": "VERIFY:VerificationAssessment.device_checks"
          },
          "document_checks": {
            "$ref": "#/components/schemas/VerificationDocumentCheckSection",
            "description": "Document extraction, tamper and cross-document consistency results.",
            "x-field-id": "VERIFY:VerificationAssessment.document_checks"
          },
          "bank_account_checks": {
            "$ref": "#/components/schemas/VerificationBankAccountCheckSection",
            "description": "Account-holder matching and verification method, separate from financial analysis.",
            "x-field-id": "VERIFY:VerificationAssessment.bank_account_checks"
          },
          "questionnaires": {
            "$ref": "#/components/schemas/VerificationQuestionnaireSection",
            "description": "Versioned borrower declarations, repeatable answers and file references with declared provenance.",
            "x-field-id": "VERIFY:VerificationAssessment.questionnaires"
          },
          "signatures": {
            "$ref": "#/components/schemas/VerificationSignatureSection",
            "description": "Signer identity, authority, consent and signature validation evidence.",
            "x-field-id": "VERIFY:VerificationAssessment.signatures"
          },
          "field_comparisons": {
            "$ref": "#/components/schemas/VerificationFieldComparisonSection",
            "description": "Submitted versus observed values, thresholds and exact matching outcomes.",
            "x-field-id": "VERIFY:VerificationAssessment.field_comparisons"
          },
          "source_scores": {
            "$ref": "#/components/schemas/VerificationSourceScoreSection",
            "description": "Original provider scales, ratings and reason codes; never an AMLOK credit probability.",
            "x-field-id": "VERIFY:VerificationAssessment.source_scores"
          },
          "duplicate_checks": {
            "$ref": "#/components/schemas/VerificationDuplicateCheckSection",
            "description": "Authorized same-workspace matches with identifiers minimized.",
            "x-field-id": "VERIFY:VerificationAssessment.duplicate_checks"
          }
        },
        "required": [
          "id",
          "borrower_id",
          "subject_id",
          "definition_version",
          "as_of",
          "status",
          "outcome",
          "summary",
          "sources",
          "ownership_resolution",
          "documents",
          "checks",
          "businesses",
          "persons",
          "registrations",
          "addresses",
          "relationships",
          "ownership",
          "identity_documents",
          "biometrics",
          "screenings",
          "tax_checks",
          "licences",
          "filings",
          "corporate_structure",
          "public_records",
          "online_presence",
          "contact_checks",
          "device_checks",
          "document_checks",
          "bank_account_checks",
          "questionnaires",
          "signatures",
          "field_comparisons",
          "source_scores",
          "duplicate_checks"
        ],
        "additionalProperties": false,
        "description": "Complete normalized KYC/KYB assessment from authorized sources. Empty or unavailable checks never imply a pass. All sections are present; coverage and missing-field reasons explain withheld or absent information.",
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "const": "unavailable"
                }
              }
            },
            "then": {
              "properties": {
                "outcome": {
                  "enum": [
                    "inconclusive",
                    "not_performed"
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "ownership_resolution": {
                  "properties": {
                    "status": {
                      "const": "partial"
                    }
                  }
                }
              }
            },
            "then": {
              "properties": {
                "ownership_resolution": {
                  "properties": {
                    "reason": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "NormalizedVerificationAssessment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.id",
            "description": "Id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "object": {
            "const": "verification_assessment",
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.object",
            "description": "Object. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "subject_id": {
            "type": "string",
            "minLength": 1,
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.subject_id",
            "description": "Subject id. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "record_version": {
            "type": "integer",
            "minimum": 1,
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.record_version",
            "description": "Record version. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.created_at",
            "description": "Created at. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "updated_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.updated_at",
            "description": "Updated at. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "observed_at": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.observed_at",
            "description": "Observed at. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "schema_version": {
            "const": "1.0.0",
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.schema_version",
            "description": "Schema version. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          },
          "assessment": {
            "$ref": "#/components/schemas/VerificationAssessment",
            "x-field-id": "VERIFY:NormalizedVerificationAssessment.assessment",
            "description": "Assessment. Preserve the source meaning; null or unknown does not establish a negative or a verified result."
          }
        },
        "required": [
          "id",
          "object",
          "subject_id",
          "record_version",
          "created_at",
          "updated_at",
          "observed_at",
          "schema_version",
          "assessment"
        ],
        "additionalProperties": false,
        "description": "One immutable version of an authorized KYC/KYB assessment, available through data records and frozen evidence. ID/version must agree with the surrounding DataRecord or EvidenceSummary."
      },
      "NormalizedConnectionRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "connection"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "provider_id": {
            "type": "string",
            "description": "Integration catalog identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0017",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "provider_tenant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Opaque external organization or item identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0018",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_connection_status",
            "description": "Current connection usability. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0019",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "institution_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-specific institution identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0020",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "institution_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Institution display name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0021",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Institution country when established. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0022",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Data products enabled for this connection. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0023",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Granted read/write entitlements. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0024",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "consent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Consent record authorizing the connection. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0025",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "last_successful_sync_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Latest fully successful retrieval. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0026",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "next_refresh_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Scheduled next refresh if known. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0027",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "history_available_from": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Earliest date actually returned for the selected resource. Do not infer from a provider's maximum advertised history.",
            "x-field-id": "F0028",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reauth_required_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "When renewed user authorization became necessary. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0029",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Sanitized connection error code. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0030",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "sync_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Opaque AMLOK change cursor for authorized synchronization. Never expose a provider secret or access token.",
            "x-field-id": "F0031",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ConnectionRead",
        "description": "One authorized link to a provider tenant or financial institution. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedSourceRef": {
        "type": "object",
        "properties": {
          "provider_id": {
            "type": "string",
            "description": "Inventory or supplemental provider identifier; AMLOK or CLIENT for internal evidence."
          },
          "connection_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Authorized provider connection."
          },
          "source_record_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Upstream record identifier scoped by provider, connection and record type."
          },
          "source_record_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider object or report type."
          },
          "source_updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source update time; do not replace with retrieval time."
          },
          "retrieved_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK retrieved this evidence."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence document when applicable."
          },
          "source_api_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Version of provider API/schema used."
          }
        },
        "required": [
          "provider_id",
          "retrieved_at"
        ]
      },
      "NormalizedFieldProvenance": {
        "type": "object",
        "properties": {
          "field_path": {
            "type": "string",
            "description": "Relative path in the normalized resource."
          },
          "source_ref_index": {
            "type": "integer",
            "description": "Zero-based index into source_refs."
          },
          "source_field_path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual field path or document locator."
          },
          "transformation_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Versioned conversion/mapping rule."
          },
          "evidence_level": {
            "$ref": "#/components/schemas/NormalizedEnum_evidence_level",
            "description": "Provenance class for the resulting value."
          },
          "confidence": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Calibrated extraction or matching confidence, if available."
          },
          "source_timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original timezone where needed to interpret local time."
          }
        },
        "required": [
          "field_path",
          "source_ref_index",
          "evidence_level"
        ]
      },
      "NormalizedEnum_evidence_level": {
        "type": "string",
        "enum": [
          "source_record",
          "document_extracted",
          "client_asserted",
          "derived",
          "model_inferred"
        ]
      },
      "NormalizedEnum_data_status": {
        "type": "string",
        "enum": [
          "complete",
          "partial",
          "unavailable",
          "pending"
        ]
      },
      "NormalizedMissingField": {
        "type": "object",
        "properties": {
          "field_path": {
            "type": "string",
            "description": "Unavailable relative field path."
          },
          "reason": {
            "$ref": "#/components/schemas/NormalizedEnum_null_reason",
            "description": "Specific reason the field has no value."
          },
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Sanitized explanation useful to the caller."
          }
        },
        "required": [
          "field_path",
          "reason"
        ]
      },
      "NormalizedEnum_null_reason": {
        "type": "string",
        "enum": [
          "not_provided",
          "not_supported",
          "not_authorized",
          "not_applicable",
          "pending",
          "redacted",
          "source_error",
          "invalid",
          "insufficient_history"
        ]
      },
      "NormalizedEnum_connection_status": {
        "type": "string",
        "enum": [
          "pending",
          "active",
          "reauth_required",
          "revoked",
          "disconnected",
          "error"
        ]
      },
      "NormalizedConsentRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "consent"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "subject_type": {
            "$ref": "#/components/schemas/NormalizedEnum_party_type",
            "description": "Whether the authorization concerns a business or person. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0032",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_consent_status",
            "description": "Recorded authorization state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0033",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "purposes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Documented purposes for processing the linked data. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0034",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Permitted data and actions. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0035",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "granted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time authorization was granted. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0036",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Expiry when the authorization specifies one. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0037",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "revoked_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Revocation time if revoked. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0038",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "policy_version": {
            "type": "string",
            "description": "Version of the text or authority recorded. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0039",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "evidence_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Stored evidence of authorization. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0040",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "authorized_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Person or client principal granting authorization. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0041",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ConsentRead",
        "description": "Authorization and permitted use linked to a subject and client. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_party_type": {
        "type": "string",
        "enum": [
          "business",
          "person"
        ]
      },
      "NormalizedEnum_consent_status": {
        "type": "string",
        "enum": [
          "pending",
          "granted",
          "revoked",
          "expired"
        ]
      },
      "NormalizedSyncJobRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "sync_job"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "connection_id": {
            "type": "string",
            "description": "Connection being synchronized. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0042",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Requested resource types. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0043",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_sync_status",
            "description": "Ingestion run state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0044",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Processing start time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0045",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Completion or terminal failure time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0046",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "requested_from": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Inclusive source date requested. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0047",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "requested_to": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Exclusive source date requested. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0048",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "records_added": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "New records accepted. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0049",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "records_updated": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Existing records revised. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0050",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "records_removed": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstones processed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0051",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "coverage_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Earliest successfully retrieved date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0052",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "coverage_end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Exclusive end of successfully retrieved interval. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0053",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "errors": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedError"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Per-resource retrieval or validation failures. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0054",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "SyncJobRead",
        "description": "Bounded ingestion run, including partial results and source outages. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_sync_status": {
        "type": "string",
        "enum": [
          "queued",
          "running",
          "completed",
          "partial",
          "failed",
          "cancelled"
        ]
      },
      "NormalizedError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string",
            "description": "Safe caller-facing explanation."
          },
          "field": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Invalid request field when relevant."
          },
          "retryable": {
            "type": "boolean",
            "description": "Whether retry may succeed without changing the request."
          },
          "request_id": {
            "type": "string",
            "description": "Correlation identifier for support."
          }
        },
        "required": [
          "code",
          "message",
          "retryable",
          "request_id"
        ]
      },
      "NormalizedBusinessRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "business"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "legal_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Name recorded as the legal business name. Retain accents and source spelling; normalized matching key is separate.",
            "x-field-id": "F0055",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "trade_names": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Trading or DBA names separately identified by the source. Do not split an unstructured list without evidence.",
            "x-field-id": "F0056",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "former_names": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Historical legal names explicitly identified by source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0057",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "registration_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Company or registry registration identifier. Preserve leading zeroes and jurisdiction-specific punctuation.",
            "x-field-id": "F0058",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "registration_jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry jurisdiction for the identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0059",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "incorporation_country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Country of formation. Normalize documented alpha-3 source codes to alpha-2 using a versioned lookup.",
            "x-field-id": "F0060",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "incorporation_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Legal formation date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0061",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "legal_form": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source legal form, normalized only where an approved mapping exists. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0062",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "legal_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_legal_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry legal standing category. Active does not imply solvency or all compliance obligations satisfied.",
            "x-field-id": "F0063",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "raw_legal_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unmodified status supplied by the registry. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0064",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "tax_identifiers": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedIdentifier"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Jurisdiction-qualified business tax identifiers. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0065",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "lei": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Legal Entity Identifier when assigned. Do not invent an LEI from a registration number.",
            "x-field-id": "F0066",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "registered_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedAddress"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registered office address. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0067",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "operating_addresses": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedAddress"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Known trading or operating locations. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0068",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "website": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business website reported by a source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0069",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business contact email. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0070",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business contact telephone. E.164 when parseable with country context; otherwise preserve raw value.",
            "x-field-id": "F0071",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "industry_codes": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedIndustryCode"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Classification codes with explicit taxonomy and version. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0072",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "business_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source description of business activity. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0073",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "employee_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Employee count reported for the stated observation date. Registry or source observation; not a live payroll count.",
            "x-field-id": "F0074",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "fiscal_year_end": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fiscal year-end month and day. MM-DD; not a financial statement date.",
            "x-field-id": "F0075",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reporting_currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Home currency of the business accounting system. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0076",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_registry_sourced": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether the profile came from a registry rather than self-report. Retain any subsequent user edits in field provenance.",
            "x-field-id": "F0077",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "registry_retrieved_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "When registry evidence was obtained. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0078",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "last_annual_return_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date of annual corporate return filing when reported. Distinct from financial accounts and tax return filing dates.",
            "x-field-id": "F0079",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "ownership_complete": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether the delivered ownership report meets the declared scope. Null if completeness cannot be established.",
            "x-field-id": "F0080",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "BusinessRead",
        "description": "A legal organization or sole-proprietor business profile. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_legal_status": {
        "type": "string",
        "enum": [
          "active",
          "inactive",
          "dissolved",
          "struck_off",
          "liquidation",
          "dormant",
          "unknown"
        ]
      },
      "NormalizedIdentifier": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Identifier scheme such as CA_BN or US_EIN."
          },
          "value_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Vault token for restricted identifiers."
          },
          "masked_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Masked identifier for an authorized caller."
          },
          "country": {
            "type": "string",
            "description": "Issuing country code."
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry or subdivision when necessary."
          }
        },
        "required": [
          "type",
          "country"
        ]
      },
      "NormalizedAddress": {
        "type": "object",
        "properties": {
          "line1": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Street or delivery address line one."
          },
          "line2": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Suite, unit or second address line."
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Locality."
          },
          "region": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Subdivision or province code/name; preserve raw when unmapped."
          },
          "postal_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Postal code as a string with leading zeroes preserved."
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO 3166-1 alpha-2 country when established."
          },
          "raw_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unparsed source address if structured fields are unavailable."
          }
        }
      },
      "NormalizedIndustryCode": {
        "type": "object",
        "properties": {
          "taxonomy": {
            "type": "string",
            "description": "Classification system; NAICS, SIC, MCC, NACE or named local scheme."
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Edition of the classification system."
          },
          "code": {
            "type": "string",
            "description": "Identifier preserved as a string."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Label supplied by source or a versioned dictionary."
          },
          "is_primary": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-designated primary industry."
          }
        },
        "required": [
          "taxonomy",
          "code"
        ]
      },
      "NormalizedPersonRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "person"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "given_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Given name as supplied or verified. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0081",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "middle_names": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Middle names when present. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0082",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "family_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Family name as supplied or verified. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0083",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "full_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Full display name preserving local naming conventions. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0084",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "date_of_birth": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Birth date from authorized evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0085",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "nationalities": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Nationality country codes reported by source. Do not infer citizenship from address or birthplace.",
            "x-field-id": "F0086",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "residence_country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current country of residence when established. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0087",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "addresses": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedAddress"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Authorized address observations. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0088",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contact email. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0089",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contact telephone. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0090",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "tax_identifier_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Vault reference for a permitted tax identifier. Default responses never include full SIN/SSN.",
            "x-field-id": "F0091",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "occupation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Occupation provided for the declared workflow. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0092",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "verification_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Most recent relevant verification session. Do not replace historic sessions.",
            "x-field-id": "F0093",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "PersonRead",
        "description": "Individual applicant, owner, officer, guarantor or authorized party. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedRelationshipRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "relationship"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "from_entity_id": {
            "type": "string",
            "description": "Entity at the source of the relationship. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0094",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "to_entity_id": {
            "type": "string",
            "description": "Entity at the target of the relationship. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0095",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "relationship_type": {
            "$ref": "#/components/schemas/NormalizedEnum_relationship_type",
            "description": "Meaning and direction of the link. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0096",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "ownership_ratio": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact ownership share when supplied. Fraction 0 to 1; never convert an ownership band to an exact share.",
            "x-field-id": "F0097",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "ownership_band_min": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Lower bound of an ownership band. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0098",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "ownership_band_max": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Upper bound of an ownership band. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0099",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "voting_ratio": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Voting rights as a share of total rights. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0100",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_ultimate_owner": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether the source resolves this party as ultimate owner. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0101",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "control_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence of control beyond share ownership. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0102",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "valid_from": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Relationship start date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0103",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "valid_to": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Relationship end date if known. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0104",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "evidence_document_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Documents establishing the relationship. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0105",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "confidence": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "AMLOK match confidence only when a calibrated model produces it. 0 to 1; not a legal ownership determination.",
            "x-field-id": "F0106",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "review_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_review_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Human review of the relationship evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0107",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "RelationshipRead",
        "description": "Directed, evidenced link between two entities. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_relationship_type": {
        "type": "string",
        "enum": [
          "beneficial_owner",
          "shareholder",
          "director",
          "officer",
          "guarantor",
          "subsidiary",
          "parent",
          "authorized_signatory",
          "account_holder",
          "related_party",
          "unknown"
        ]
      },
      "NormalizedEnum_review_status": {
        "type": "string",
        "enum": [
          "not_reviewed",
          "accepted",
          "rejected",
          "needs_review"
        ]
      },
      "NormalizedVerificationRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "verification"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "verification_type": {
            "type": "string",
            "description": "Verification purpose, such as KYC or KYB. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0108",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "provider_session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Upstream session identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0109",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_verification_status",
            "description": "Normalized verification state. Preserve the upstream status and individual check results.",
            "x-field-id": "F0110",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "raw_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact upstream verification status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0111",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "workflow_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider or AMLOK verification configuration version. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0112",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "hosted_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time-limited applicant verification link. Use only provider-approved domains; never persist public credentials.",
            "x-field-id": "F0113",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Session link or verification expiry, when explicitly defined. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0114",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the verification reached its current completed result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0115",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "check_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Individual checks comprising the result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0116",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "warnings": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider warnings preserved with context. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0117",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "review_reason_codes": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Reasons for required review. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0118",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "decision_actor_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether the result was automated or manually reviewed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0119",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "report_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Stored verification report. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0120",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "parent_verification_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Parent KYB session for a related person's check. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0121",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "stop_reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "account_cancellation",
                  "parent_cancelled",
                  "consent_revoked"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "processing_context": {
            "$ref": "#/components/schemas/NormalizedProcessingContext"
          },
          "subject_association_version": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "VerificationRead",
        "description": "KYC or KYB session and its aggregate result. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_verification_status": {
        "type": "string",
        "enum": [
          "not_started",
          "in_progress",
          "awaiting_user",
          "in_review",
          "approved",
          "declined",
          "resubmission_requested",
          "expired",
          "abandoned",
          "verification_expired",
          "unknown",
          "cancelled"
        ]
      },
      "NormalizedProcessingContext": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "product": {
                "const": "insights",
                "type": "string"
              },
              "workflow_run_id": {
                "type": "string",
                "minLength": 1
              },
              "subject_association_id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "product",
              "workflow_run_id"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "product": {
                "const": "signal",
                "type": "string"
              },
              "monitoring_period_id": {
                "type": "string",
                "minLength": 1
              },
              "subject_association_id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "product",
              "monitoring_period_id"
            ],
            "additionalProperties": false
          }
        ],
        "discriminator": {
          "propertyName": "product"
        },
        "description": "Parent must belong to this workspace. Same-subject stages need no association. Only person KYC may target a different subject: supply an active subject_association_id linking that person to the parent business. Insights requires an unfinished authorized root run; Signal requires an active paid period. Stage scope, consent, association and workload are checked on every attempt. The parent business remains the billing and workload subject. No standalone service or extra charge."
      },
      "NormalizedVerificationCheckRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "verification_check"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "verification_id": {
            "type": "string",
            "description": "Verification containing this check. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0122",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "check_type": {
            "type": "string",
            "description": "Specific feature run by the provider. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0123",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_check_status",
            "description": "Normalized outcome of this check. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0124",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "raw_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unmodified provider result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0125",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "method": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Document, database, biometric, registry or other method. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0126",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence document for this check. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0127",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Identity document type when relevant. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0128",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_number_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Vault reference for document number. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0129",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_number_masked": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Masked identifier safe for the caller's scope. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0130",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "issuing_country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Country issuing the identity evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0131",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "issue_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Document issue date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0132",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "expiry_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Document expiry date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0133",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "name_match": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-reported name match result. Null if not tested; do not derive from overall approval.",
            "x-field-id": "F0134",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "date_of_birth_match": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-reported date-of-birth match result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0135",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "address_match": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-reported address match result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0136",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "liveness_result": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_check_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Liveness feature outcome if run. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0137",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "face_match_score": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-native face match score. Retain score scale and version; never assume probability.",
            "x-field-id": "F0138",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "score_scale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Published interpretation and range of the provider score. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0139",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "warnings": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Feature-specific warnings. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0140",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "checked_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the feature executed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0141",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "VerificationCheckRead",
        "description": "Individual document, biometric, address, registry or contact check. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_check_status": {
        "type": "string",
        "enum": [
          "not_run",
          "pending",
          "passed",
          "failed",
          "review",
          "unavailable",
          "unknown"
        ]
      },
      "NormalizedScreeningMatchRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "screening_match"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "verification_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Session associated with the screening result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0142",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "screening_type": {
            "$ref": "#/components/schemas/NormalizedEnum_screening_type",
            "description": "Screening category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0143",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "list_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Name of the dataset or watchlist. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0144",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "list_record_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Identifier in the source dataset. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0145",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "matched_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Name on the potential matching record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0146",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "aliases": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Known aliases of the source entry. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0147",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "countries": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Jurisdictions associated with the entry. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0148",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "match_score": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-native similarity measure. Scale and algorithm must be supplied; not a guilt probability.",
            "x-field-id": "F0149",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "score_scale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Score range and interpretation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0150",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "disposition": {
            "$ref": "#/components/schemas/NormalizedEnum_match_disposition",
            "description": "Review outcome for this potential match. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0151",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "reason_codes": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence driving match or review. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0152",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reference supporting the screening result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0153",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "listed_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Listing date when supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0154",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "screened_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Screening execution time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0155",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reviewed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time of analyst disposition. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0156",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reviewer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Authorized reviewer identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0157",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ScreeningMatchRead",
        "description": "Candidate watchlist, sanctions, PEP or adverse-media match. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_screening_type": {
        "type": "string",
        "enum": [
          "sanctions",
          "pep",
          "adverse_media",
          "watchlist"
        ]
      },
      "NormalizedEnum_match_disposition": {
        "type": "string",
        "enum": [
          "unreviewed",
          "false_positive",
          "possible_match",
          "confirmed_match"
        ]
      },
      "NormalizedDocumentRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "document"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_type": {
            "$ref": "#/components/schemas/NormalizedEnum_document_type",
            "description": "Category of evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0158",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "file_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original or normalized file name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0159",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "mime_type": {
            "type": "string",
            "description": "Validated media type. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0160",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "byte_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "File size in bytes. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0161",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Checksum of the retained evidence bytes. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0162",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "storage_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Opaque controlled evidence reference. No permanent public object-store URL.",
            "x-field-id": "F0163",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "period_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "First date covered by the document. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0164",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "period_end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Last date covered by the document, inclusive. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0165",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "issued_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Issue date printed on the document. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0166",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "issuer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Document issuer. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0167",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "page_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Number of pages. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0168",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extraction_status": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pending",
                  "running",
                  "completed",
                  "partial",
                  "failed",
                  "cancelled"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "extraction_model_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Version of parser or extraction model. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0170",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extraction_confidence": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Calibrated extraction quality when available. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0171",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "review_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_review_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Human validation of extracted evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0172",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "retention_policy_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Applicable configured retention policy. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0173",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "stop_reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "account_cancellation",
                  "parent_cancelled",
                  "consent_revoked"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "DocumentRead",
        "description": "Evidence file metadata and extraction context. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_document_type": {
        "type": "string",
        "enum": [
          "identity",
          "proof_of_address",
          "bank_statement",
          "financial_statement",
          "tax_return",
          "corporate_registry",
          "ownership",
          "loan_agreement",
          "lien_report",
          "invoice",
          "other"
        ]
      },
      "NormalizedBankAccountRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "bank_account"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "connection_id": {
            "type": "string",
            "description": "Authorized bank connection. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0175",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "source_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Upstream account identifier within its connection. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0176",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Account name supplied by institution or holder. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0177",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "official_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Institution's official account product name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0178",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "account_type": {
            "$ref": "#/components/schemas/NormalizedEnum_account_type",
            "description": "Broad financial account class. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0179",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "account_subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Detailed subtype with preserved raw value. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0180",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "ownership_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_account_ownership"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business, personal, joint or trust classification. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0181",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "institution_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Name of the institution holding the account. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0182",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Institution jurisdiction established by source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0183",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "mask": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-supplied masked account suffix. May be 2 to 4 characters; not a unique key.",
            "x-field-id": "F0184",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Currency of the account balance. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0185",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "holder_names": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Names returned by an entitled ownership product. Account ownership data is not automatically a completed KYC check.",
            "x-field-id": "F0186",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "holder_entity_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Resolved AMLOK holders. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0187",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_closed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Explicit account closure indicator. Disappearance from an API response alone does not prove closure.",
            "x-field-id": "F0188",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "opened_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Account opening date when actually returned. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0189",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "closed_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Explicit closure date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0190",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "bank_identifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Institution routing identifier, when entitled. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0191",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "branch_identifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Branch or transit identifier, when entitled. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0192",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "account_number_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Vault reference for the full account number. Raw account numbers require a separately authorized product and scope.",
            "x-field-id": "F0193",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "BankAccountRead",
        "description": "Permissioned bank, credit or loan account identity. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_account_type": {
        "type": "string",
        "enum": [
          "depository",
          "credit",
          "loan",
          "investment",
          "other",
          "unknown"
        ]
      },
      "NormalizedEnum_account_ownership": {
        "type": "string",
        "enum": [
          "business",
          "personal",
          "joint",
          "trust",
          "unknown"
        ]
      },
      "NormalizedAccountBalanceRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "account_balance"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "account_id": {
            "type": "string",
            "description": "Account for the balance. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0194",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "current": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Current balance reported by the institution. Amount in major currency units. Positive depository amounts are assets; positive loan/credit amounts normally represent debt.",
                "x-field-id": "F0195",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for current. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0196",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "available": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Funds available under the institution's calculation. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0197",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for available. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0198",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "credit_limit": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Authorized credit or overdraft limit where explicitly reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0199",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for credit limit. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0200",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "balance_basis": {
            "$ref": "#/components/schemas/NormalizedEnum_balance_basis",
            "description": "Whether current balance represents an asset or liability. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0201",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "as_of": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source balance timestamp if supplied. Never substitute ingestion time as a source balance timestamp.",
            "x-field-id": "F0202",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "retrieved_at": {
            "type": "string",
            "format": "date-time",
            "description": "AMLOK balance retrieval time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0203",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "is_realtime": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether this observation was retrieved by a verified live-balance route. Cached account responses are not real-time.",
            "x-field-id": "F0204",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "date_basis": {
            "$ref": "#/components/schemas/NormalizedEnum_balance_date_basis",
            "description": "How balance timing was established. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0205",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "AccountBalanceRead",
        "description": "Timestamped balance snapshot; asset and liability meanings remain explicit. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_balance_basis": {
        "type": "string",
        "enum": [
          "asset",
          "liability",
          "unknown"
        ]
      },
      "NormalizedEnum_balance_date_basis": {
        "type": "string",
        "enum": [
          "source_observed",
          "reconstructed",
          "unknown"
        ]
      },
      "NormalizedBankTransactionRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "bank_transaction"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "account_id": {
            "type": "string",
            "description": "Financial account carrying the transaction. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0206",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "source_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider transaction identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0207",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Absolute transaction magnitude. Amount in major currency units. Nonnegative; direction is separate. Preserve original signed amount in provenance.",
                "x-field-id": "F0208",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0209",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "direction": {
            "$ref": "#/components/schemas/NormalizedEnum_direction",
            "description": "Movement into or out of the financial account. For Plaid Transactions invert sign semantics; do not apply this rule to Plaid Income.",
            "x-field-id": "F0210",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_transaction_status",
            "description": "Pending, posted or removed state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0211",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "posted_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date the institution posted the transaction. For pending transactions leave null if only an occurrence date is known.",
            "x-field-id": "F0212",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "authorized_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date payment was authorized or initiated. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0213",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Timestamp of the transaction event if supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0214",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Transaction description supplied by source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0215",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "merchant_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Merchant or counterparty label supplied by source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0216",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "counterparty_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "AMLOK counterparty resolved with evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0217",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "category": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_cashflow_category"
              },
              {
                "type": "null"
              }
            ],
            "description": "AMLOK cash-flow classification. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0218",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider's original category label/code. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0219",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "category_confidence": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Calibrated classification confidence if available. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0220",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payment_channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source payment channel. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0221",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "merchant_category_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported merchant category code. Four-character string; not equivalent to NAICS.",
            "x-field-id": "F0222",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "pending_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Earlier pending record superseded by this posting. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0223",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "related_transfer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Matched internal-transfer pair when established. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0224",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_internal_transfer": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether evidence establishes movement between the subject's own accounts. Unknown is null, not false.",
            "x-field-id": "F0225",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_reversal": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether explicitly reversed or linked to a reversing record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0226",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reverses_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original transaction reversed by this one. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0227",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "running_balance": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Source-reported balance immediately after the transaction. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0228",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for running balance. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0229",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "location": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedAddress"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported physical transaction location. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0230",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "check_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Cheque number where explicitly reported. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0231",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "BankTransactionRead",
        "description": "One movement on one financial account; no automatic cross-source deduplication. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_direction": {
        "type": "string",
        "enum": [
          "inflow",
          "outflow",
          "neutral",
          "unknown"
        ]
      },
      "NormalizedEnum_transaction_status": {
        "type": "string",
        "enum": [
          "pending",
          "posted",
          "removed",
          "unknown"
        ]
      },
      "NormalizedEnum_cashflow_category": {
        "type": "string",
        "enum": [
          "sales_receipt",
          "payroll",
          "operating_expense",
          "tax",
          "debt_proceeds",
          "debt_service",
          "owner_contribution",
          "owner_distribution",
          "internal_transfer",
          "refund",
          "chargeback",
          "interest",
          "fee",
          "investment",
          "other",
          "unknown"
        ]
      },
      "NormalizedRecurringStreamRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "recurring_stream"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "account_id": {
            "type": "string",
            "description": "Account for the recurring stream. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0232",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "direction": {
            "$ref": "#/components/schemas/NormalizedEnum_direction",
            "description": "Expected account movement direction. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0233",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Description of the recurring pattern. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0234",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "counterparty_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Resolved counterparty when available. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0235",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_frequency"
              },
              {
                "type": "null"
              }
            ],
            "description": "Observed or provider-reported cadence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0236",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "average_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Average amount over the stated observation interval. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0237",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for average amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0238",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "last_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Most recent observed amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0239",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for last amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0240",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "first_seen_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "First supporting transaction date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0241",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "last_seen_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Most recent supporting transaction date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0242",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "next_expected_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Predicted next occurrence date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0243",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "transaction_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Supporting transaction records. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0244",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether the stream remains active under its declared method. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0245",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "method_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider or AMLOK pattern method version. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0246",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "RecurringStreamRead",
        "description": "Evidence-based grouping of repeated inflows or outflows. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_frequency": {
        "type": "string",
        "enum": [
          "daily",
          "weekly",
          "biweekly",
          "semimonthly",
          "monthly",
          "quarterly",
          "annually",
          "irregular",
          "unknown"
        ]
      },
      "NormalizedIncomeObservationRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "income_observation"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "person_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Person associated with the income evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0247",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "income_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Employer or other origin reported by source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0248",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "income_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Wages, benefits, business income or other source category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0249",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "gross_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Gross income before deductions, only when established. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0250",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for gross amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0251",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "net_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Net amount received for the stated period. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0252",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for net amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0253",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "period_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Inclusive income period start. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0254",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "period_end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Inclusive income period end. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0255",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_frequency"
              },
              {
                "type": "null"
              }
            ],
            "description": "Income payment cadence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0256",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "evidence_level": {
            "$ref": "#/components/schemas/NormalizedEnum_evidence_level",
            "description": "Whether the amount is reported, extracted or inferred. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0257",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "transaction_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Supporting bank transactions. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0258",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Supporting income evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0259",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "verified_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time of verification, if a verification actually occurred. Bank deposit classification alone is not payroll-verified gross income.",
            "x-field-id": "F0260",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "IncomeObservationRead",
        "description": "Income evidence from an entitled income product or an explicitly labeled inference. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedMerchantAccountRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "merchant_account"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "connection_id": {
            "type": "string",
            "description": "Provider connection for the merchant. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0261",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "merchant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider merchant identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0262",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Merchant name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0263",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "processor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Payment processor or acquirer name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0264",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Merchant account jurisdiction. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0265",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "settlement_currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Settlement currency. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0266",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider merchant account status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0267",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "settlement_schedule": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported settlement cadence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0268",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payout_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Matched bank destination account when established. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0269",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reserve_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Provider-reported withheld reserve. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0270",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for reserve amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0271",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "reserve_policy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reserve terms when explicitly provided. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0272",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "MerchantAccountRead",
        "description": "Merchant processing relationship and settlement context. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedPaymentRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "payment"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "merchant_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Merchant processing account. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0273",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "order_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related commerce order when matched. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0274",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "customer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related commercial counterparty. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0275",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_payment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Upstream payment identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0276",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_payment_status",
            "description": "Normalized payment state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0277",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Gross payment amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0278",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0279",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "captured_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount captured by the merchant. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0280",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for captured amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0281",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "refunded_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Cumulative refund amount in the payment's currency. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0282",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for refunded amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0283",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "fee_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Provider-reported fee attributable to this payment. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0284",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for fee amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0285",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "net_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Provider-reported net settlement contribution. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0286",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for net amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0287",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "method_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Payment method category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0288",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "card_brand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Card network if supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0289",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "card_last4": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Last four digits only, when required for the workflow. Never expose PAN, CVV or magnetic-stripe data.",
            "x-field-id": "F0290",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "authorized_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Authorization timestamp. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0291",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "captured_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Capture timestamp. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0292",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "settled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Settlement timestamp when established. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0293",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "failure_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Sanitized failure reason. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0294",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payout_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Payout containing this payment if the source supplies a linkage. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0295",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "PaymentRead",
        "description": "Payment authorization, capture or collection record. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_payment_status": {
        "type": "string",
        "enum": [
          "pending",
          "authorized",
          "captured",
          "settled",
          "failed",
          "cancelled",
          "partially_refunded",
          "refunded",
          "unknown"
        ]
      },
      "NormalizedProcessorTransactionRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "processor_transaction"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "merchant_account_id": {
            "type": "string",
            "description": "Merchant balance associated with this event. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0296",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "source_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider ledger-event identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0297",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "event_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider ledger type, such as charge, refund or payout. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0298",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "gross": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Signed gross processor-balance movement. Amount in major currency units. Positive increases balance; retain source semantics in mapping.",
                "x-field-id": "F0299",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for gross. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0300",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "fee": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Fee assessed by the processor for this event. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0301",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for fee. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0302",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "net": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Signed net balance impact. Amount in major currency units. For Stripe balance transactions, net equals amount minus fee.",
                "x-field-id": "F0303",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for net. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0304",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "reporting_category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider accounting classification. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0305",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "availability_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider fund availability state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0306",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "available_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date funds become available in the processor balance. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0307",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider ledger-event creation time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0308",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_object_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Upstream object linked to this event. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0309",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized payment link when resolved. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0310",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ProcessorTransactionRead",
        "description": "Ledger event on a processor balance, separate from bank movements. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedPayoutRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "payout"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "merchant_account_id": {
            "type": "string",
            "description": "Merchant account initiating settlement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0311",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "source_payout_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider payout identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0312",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_payout_status",
            "description": "Normalized settlement state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0313",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "gross": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Gross settled amount before deductions, if separately reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0314",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for gross. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0315",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "fees": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Settlement deductions explicitly identified as fees. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0316",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for fees. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0317",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "net": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount remitted to the destination. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0318",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for net. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0319",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "created_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Payout initiation date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0320",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "expected_arrival_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Expected arrival, if provided. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0321",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "paid_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-reported completion time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0322",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "destination_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Matched destination bank account. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0323",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "bank_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Matching deposit or debit record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0324",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reconciliation_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_reconciliation_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Match state between settlement and bank movement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0325",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "failure_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider failure reason if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0326",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "PayoutRead",
        "description": "Settlement from a processor or marketplace to a destination account. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_payout_status": {
        "type": "string",
        "enum": [
          "pending",
          "in_transit",
          "paid",
          "failed",
          "cancelled",
          "unknown"
        ]
      },
      "NormalizedEnum_reconciliation_status": {
        "type": "string",
        "enum": [
          "unmatched",
          "matched",
          "partial",
          "conflict"
        ]
      },
      "NormalizedRefundRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "refund"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payment_id": {
            "type": "string",
            "description": "Original payment being refunded. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0327",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "order_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related order when known. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0328",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Refund magnitude, nonnegative. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0329",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0330",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider or mapped refund status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0331",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Refund reason supplied by source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0332",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "requested_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Refund initiation time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0333",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Completion time if confirmed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0334",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "processor_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Ledger event representing the refund. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0335",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "RefundRead",
        "description": "Return of money linked to a payment or order. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedDisputeRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "dispute"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payment_id": {
            "type": "string",
            "description": "Disputed payment. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0336",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Disputed amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0337",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0338",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "reason_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider or network dispute category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0339",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_dispute_status",
            "description": "Dispute process state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0340",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "opened_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Dispute opening time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0341",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "response_due_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider-specified evidence deadline. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0342",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "closed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Dispute closure time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0343",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "evidence_submitted": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether a response was submitted. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0344",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "fee_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Dispute fee if separately reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0345",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for fee amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0346",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "DisputeRead",
        "description": "Chargeback or payment dispute and its evidence deadlines. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_dispute_status": {
        "type": "string",
        "enum": [
          "needs_response",
          "under_review",
          "won",
          "lost",
          "closed",
          "unknown"
        ]
      },
      "NormalizedCounterpartyRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "counterparty"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "counterparty_type": {
            "type": "string",
            "description": "Customer, supplier or both. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0347",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Commercial record's display name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0348",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "legal_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Legal name when explicitly provided. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0349",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "resolved_entity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Matched AMLOK business or person. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0350",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Authorized contact email. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0351",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Authorized contact number. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0352",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedAddress"
              },
              {
                "type": "null"
              }
            ],
            "description": "Billing address used by the source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0353",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedAddress"
              },
              {
                "type": "null"
              }
            ],
            "description": "Shipping address used by the source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0354",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "tax_identifier_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Vault reference for a tax identifier when permitted. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0355",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payment_terms_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual payment term where supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0356",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "credit_limit": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Source-managed trade-credit limit. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0357",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for credit limit. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0358",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Explicit active status in the source system. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0359",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "CounterpartyRead",
        "description": "Customer or supplier in a commercial source system; not automatically a verified legal entity. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedOrderRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "order"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "order_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable order reference. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0360",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_order_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider order identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0361",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "customer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Purchasing counterparty. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0362",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "location_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Store or sales location. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0363",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Sales channel or marketplace. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0364",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_order_status",
            "description": "Order lifecycle state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0365",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "payment_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Commercial order payment state from source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0366",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "fulfillment_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_fulfillment_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Order fulfillment progress. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0367",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "placed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Order creation or placement time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0368",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "cancelled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Cancellation time when cancelled. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0369",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "subtotal": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Line subtotal before tax under the specified source convention. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0370",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for subtotal. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0371",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "discount_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Discounts applied to the order. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0372",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for discount total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0373",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "tax_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Tax attributed to the order. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0374",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for tax total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0375",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "shipping_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Shipping charged on the order. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0376",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for shipping total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0377",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Original total including taxes and discounts, before subsequent returns. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0378",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0379",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "current_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Current adjusted order total after changes under source semantics. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0380",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for current total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0381",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "refunded_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Cumulative refunded order amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0382",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for refunded total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0383",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "presentment_currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Currency shown to the buyer. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0384",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "taxes_included": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether listed prices already include tax. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0385",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_test": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Explicit test-order indicator. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0386",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "line_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized order lines. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0387",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "OrderRead",
        "description": "Commercial sale order with amounts distinct from payment and accounting revenue. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_order_status": {
        "type": "string",
        "enum": [
          "open",
          "completed",
          "cancelled",
          "closed",
          "unknown"
        ]
      },
      "NormalizedEnum_fulfillment_status": {
        "type": "string",
        "enum": [
          "unfulfilled",
          "partial",
          "fulfilled",
          "returned",
          "unknown"
        ]
      },
      "NormalizedOrderLineRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "order_line"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "order_id": {
            "type": "string",
            "description": "Parent order. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0388",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized product reference. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0389",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "sku": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source stock-keeping unit. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0390",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Line item label. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0391",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "quantity": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Quantity ordered. Units must be interpreted with unit_of_measure.",
            "x-field-id": "F0392",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "unit_of_measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit used for quantity. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0393",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "unit_price": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Price per unit under source tax convention. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0394",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for unit price. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0395",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "discount_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Line discount amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0396",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for discount amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0397",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "tax_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Line tax amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0398",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for tax amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0399",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "line_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Extended line total with stated tax convention. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0400",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for line total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0401",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "quantity_fulfilled": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Quantity fulfilled. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0402",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "quantity_refunded": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Quantity returned or refunded when supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0403",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "OrderLineRead",
        "description": "Product or service line belonging to an order. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedSubscriptionRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "subscription"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "customer_id": {
            "type": "string",
            "description": "Subscriber counterparty. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0404",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Recurring product or plan. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0405",
            "x-classification": "Confidential",
            "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider subscription status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0406",
            "x-classification": "Confidential",
            "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
          },
          "frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_frequency"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual billing cadence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0407",
            "x-classification": "Confidential",
            "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
          },
          "recurring_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Current recurring charge for one billing cycle. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0408",
                "x-classification": "Confidential",
                "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for recurring amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0409",
                "x-classification": "Confidential",
                "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
              }
            }
          },
          "started_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contract start date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0410",
            "x-classification": "Confidential",
            "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
          },
          "current_period_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Start of current billing period. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0411",
            "x-classification": "Confidential",
            "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
          },
          "current_period_end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "End of current billing period, exclusive. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0412",
            "x-classification": "Confidential",
            "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
          },
          "cancelled_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Cancellation date when supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0413",
            "x-classification": "Confidential",
            "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
          },
          "next_billing_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Next scheduled charge date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0414",
            "x-classification": "Confidential",
            "x-availability": "Only if the connected provider and licensed module expose subscriptions; an order feed alone is insufficient."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "SubscriptionRead",
        "description": "Recurring commercial contract when the source exposes subscription records. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedLedgerAccountRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "ledger_account"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source account code. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0415",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Account label. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0416",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "account_type": {
            "$ref": "#/components/schemas/NormalizedEnum_gl_type",
            "description": "AMLOK accounting classification. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0417",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "source_account_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unmodified source account classification. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0418",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "parent_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Parent in the chart of accounts. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0419",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "normal_balance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_debit_credit"
              },
              {
                "type": "null"
              }
            ],
            "description": "Normal ledger balance direction. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0420",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Account-specific currency if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0421",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Explicit chart-of-accounts active state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0422",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_trust_account": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether account holds third-party trust money. Do not include client trust balances in available operating liquidity.",
            "x-field-id": "F0423",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "LedgerAccountRead",
        "description": "Chart-of-accounts entry and classification. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_gl_type": {
        "type": "string",
        "enum": [
          "asset",
          "liability",
          "equity",
          "revenue",
          "expense",
          "other",
          "unknown"
        ]
      },
      "NormalizedEnum_debit_credit": {
        "type": "string",
        "enum": [
          "debit",
          "credit"
        ]
      },
      "NormalizedJournalRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "journal"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "journal_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source journal reference. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0424",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "posted_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Accounting posting date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0425",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Journal narrative. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0426",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source posting state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0427",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_document_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Originating record type. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0428",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized originating transaction. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0429",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reverses_journal_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Journal being reversed if supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0430",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "line_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Journal lines belonging to this posting. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0431",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "JournalRead",
        "description": "Accounting posting header or source journal entry. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedJournalLineRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "journal_line"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "journal_id": {
            "type": "string",
            "description": "Parent posting. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0432",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "ledger_account_id": {
            "type": "string",
            "description": "Affected ledger account. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0433",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "debit": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Debit amount; nonnegative. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0434",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for debit. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0435",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "credit": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Credit amount; nonnegative. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0436",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for credit. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0437",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "base_debit": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Debit in the company's reporting currency. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0438",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for base debit. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0439",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "base_credit": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Credit in the company's reporting currency. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0440",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for base credit. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0441",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Line narrative. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0442",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source department or dimension. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0443",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Project/job reference. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0444",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "counterparty_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Commercial party if linked. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0445",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "JournalLineRead",
        "description": "One debit or credit posting to a ledger account. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedInvoiceRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "invoice"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Printable document number. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0446",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "counterparty_id": {
            "type": "string",
            "description": "Customer for invoices or supplier for bills. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0447",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "issued_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Document issue date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0448",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "due_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual payment due date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0449",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_invoice_status",
            "description": "Normalized receivable/payable state. Do not infer void status solely from a zero balance.",
            "x-field-id": "F0450",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "subtotal": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount before tax under the source convention. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0451",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for subtotal. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0452",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "tax_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Total tax charged. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0453",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for tax total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0454",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Document total including tax. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0455",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0456",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Outstanding document amount after source-applied allocations. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0457",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0458",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_paid": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Payments applied, where separately reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0459",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount paid. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0460",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_credited": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Credits or prepayments applied, separately reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0461",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount credited. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0462",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "fully_paid_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date full payment was completed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0463",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payment_terms_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual term when explicitly reported. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0464",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "line_items": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedInvoiceLine"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Itemized quantities, prices, account codes and tax amounts. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0465",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence document for the record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0466",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "home_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Total translated to the ledger's home currency. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0467",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for home total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0468",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Home-currency units per document-currency unit. Use source rate and effective date; do not silently reverse the quote.",
            "x-field-id": "F0469",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "InvoiceRead",
        "description": "Accounts receivable invoice; sale made on credit. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_invoice_status": {
        "type": "string",
        "enum": [
          "draft",
          "open",
          "partially_paid",
          "paid",
          "void",
          "uncollectible",
          "unknown"
        ]
      },
      "NormalizedInvoiceLine": {
        "type": "object",
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Line identifier within parent document."
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized item if resolved."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original line description."
          },
          "quantity": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Line quantity in the supplied unit."
          },
          "unit_of_measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Quantity unit."
          },
          "unit_price": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedMoney"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit charge under document tax convention."
          },
          "tax_amount": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedMoney"
              },
              {
                "type": "null"
              }
            ],
            "description": "Line tax amount."
          },
          "line_total": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedMoney"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source extended amount; retain whether tax is included."
          },
          "ledger_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source ledger classification if exposed."
          },
          "tax_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Jurisdiction-specific source tax code."
          }
        }
      },
      "NormalizedMoney": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
            "description": "Exact decimal string in major units; signed only where field definition specifies."
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Uppercase ISO 4217 currency when known; null blocks monetary aggregation and requires missing_fields reason."
          }
        },
        "required": [
          "amount",
          "currency"
        ]
      },
      "NormalizedBillRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "bill"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Printable document number. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0470",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "counterparty_id": {
            "type": "string",
            "description": "Customer for invoices or supplier for bills. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0471",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "issued_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Document issue date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0472",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "due_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual payment due date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0473",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_invoice_status",
            "description": "Normalized receivable/payable state. Do not infer void status solely from a zero balance.",
            "x-field-id": "F0474",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "subtotal": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount before tax under the source convention. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0475",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for subtotal. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0476",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "tax_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Total tax charged. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0477",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for tax total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0478",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Document total including tax. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0479",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0480",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Outstanding document amount after source-applied allocations. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0481",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0482",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_paid": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Payments applied, where separately reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0483",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount paid. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0484",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_credited": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Credits or prepayments applied, separately reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0485",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount credited. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0486",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "fully_paid_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date full payment was completed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0487",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payment_terms_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual term when explicitly reported. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0488",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "line_items": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedInvoiceLine"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Itemized quantities, prices, account codes and tax amounts. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0489",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence document for the record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0490",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "home_total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Total translated to the ledger's home currency. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0491",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for home total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0492",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Home-currency units per document-currency unit. Use source rate and effective date; do not silently reverse the quote.",
            "x-field-id": "F0493",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "BillRead",
        "description": "Accounts payable invoice; amount owed to a supplier. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedCreditNoteRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "credit_note"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Credit note reference. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0494",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "counterparty_id": {
            "type": "string",
            "description": "Customer or supplier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0495",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "invoice_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related receivable if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0496",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "bill_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related payable if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0497",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "issued_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Credit note date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0498",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source credit note state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0499",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Absolute credit note amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0500",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0501",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "remaining_credit": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Credit still available for allocation. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0502",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for remaining credit. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0503",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source adjustment explanation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0504",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "CreditNoteRead",
        "description": "Adjustment reducing a receivable or payable. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedAccountingPaymentRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "accounting_payment"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "counterparty_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Customer or supplier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0505",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "direction": {
            "$ref": "#/components/schemas/NormalizedEnum_direction",
            "description": "Receipt or disbursement from the business perspective. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0506",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Total allocated cash payment. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0507",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0508",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "paid_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Accounting payment date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0509",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "bank_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Matched financial account when known. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0510",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "ledger_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Ledger cash or clearing account. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0511",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "allocations": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedAllocation"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Amounts allocated to invoices, bills or credits. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0512",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "bank_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Matched financial-account movement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0513",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reconciliation_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_reconciliation_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "State of matching ledger payment to bank movement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0514",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "AccountingPaymentRead",
        "description": "Ledger allocation of a customer receipt or supplier payment. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedAllocation": {
        "type": "object",
        "properties": {
          "resource_type": {
            "$ref": "#/components/schemas/NormalizedEnum_receivable_kind",
            "description": "Type of accounting document receiving allocation."
          },
          "resource_id": {
            "type": "string",
            "description": "Normalized accounting document."
          },
          "amount": {
            "$ref": "#/components/schemas/NormalizedMoney",
            "description": "Amount applied in the target document currency."
          }
        },
        "required": [
          "resource_type",
          "resource_id",
          "amount"
        ]
      },
      "NormalizedEnum_receivable_kind": {
        "type": "string",
        "enum": [
          "invoice",
          "bill",
          "credit_note"
        ]
      },
      "NormalizedFinancialStatementRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "financial_statement"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "statement_type": {
            "$ref": "#/components/schemas/NormalizedEnum_statement_type",
            "description": "Financial report kind. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0515",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "period_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Start of reporting period for flow statements. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0516",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "period_end": {
            "type": "string",
            "format": "date",
            "description": "Inclusive reporting end or balance-sheet date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0517",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "accounting_basis": {
            "$ref": "#/components/schemas/NormalizedEnum_accounting_basis",
            "description": "Cash or accrual basis. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0518",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "currency": {
            "type": "string",
            "description": "Presentation currency of the report. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0519",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "is_consolidated": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether multiple legal entities are consolidated. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0520",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_audited": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether an audit opinion is actually evidenced. Software-generated reports are not automatically audited.",
            "x-field-id": "F0521",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_report_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Name of the upstream report. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0522",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "generated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source report generation time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0523",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence copy of the statement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0524",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "line_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Standardized report lines. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0525",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "FinancialStatementRead",
        "description": "Financial report with explicit period, basis and source. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_statement_type": {
        "type": "string",
        "enum": [
          "balance_sheet",
          "income_statement",
          "cash_flow",
          "trial_balance"
        ]
      },
      "NormalizedEnum_accounting_basis": {
        "type": "string",
        "enum": [
          "cash",
          "accrual",
          "unknown"
        ]
      },
      "NormalizedStatementLineRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "statement_line"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "statement_id": {
            "type": "string",
            "description": "Parent financial statement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0526",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "line_code": {
            "type": "string",
            "description": "AMLOK normalized statement concept. Mapping depends on account chart and reporting basis.",
            "x-field-id": "F0527",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "source_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original report line label. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0528",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "parent_line_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Parent subtotal or grouping line. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0529",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Reported line amount in statement currency. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0530",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0531",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "is_total": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether this line is a subtotal or total. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0532",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "ledger_account_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Accounts contributing to the line when exposed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0533",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "mapping_method": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "How source lines were assigned to the normalized concept. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0534",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "StatementLineRead",
        "description": "One classified line of a financial report. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedTaxObligationRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "tax_obligation"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "tax_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Jurisdiction-specific tax category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0535",
            "x-classification": "Confidential",
            "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Relevant taxing jurisdiction. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0536",
            "x-classification": "Confidential",
            "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
          },
          "period_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tax reporting period start. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0537",
            "x-classification": "Confidential",
            "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
          },
          "period_end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tax reporting period end. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0538",
            "x-classification": "Confidential",
            "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
          },
          "due_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Payment or filing deadline when supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0539",
            "x-classification": "Confidential",
            "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
          },
          "amount_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Reported tax payable. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0540",
                "x-classification": "Confidential",
                "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0541",
                "x-classification": "Confidential",
                "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
              }
            }
          },
          "amount_paid": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Recorded payment against the obligation. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0542",
                "x-classification": "Confidential",
                "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount paid. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0543",
                "x-classification": "Confidential",
                "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
              }
            }
          },
          "filing_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-reported filing status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0544",
            "x-classification": "Confidential",
            "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
          },
          "filed_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual filing date when evidenced. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0545",
            "x-classification": "Confidential",
            "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Supporting return or receipt. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0546",
            "x-classification": "Confidential",
            "x-availability": "Accounting or supplied-return evidence only; no direct CRA/IRS account integration is established by the inventory."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "TaxObligationRead",
        "description": "Tax payable or reported obligation from an accounting system or supplied return. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedProductRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "product"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "sku": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Stock-keeping identifier within the source tenant. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0547",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Product or service name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0548",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source item description. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0549",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "product_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Goods, service, bundle or source-specific category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0550",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Product category supplied by source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0551",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "unit_of_measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Base stock unit. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0552",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source active status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0553",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_inventory_tracked": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether source maintains stock quantities. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0554",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "unit_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Source carrying cost per unit; not market value. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0555",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for unit cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0556",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "sale_price": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Current catalog selling price; not realized revenue. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0557",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for sale price. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0558",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "costing_method": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source valuation policy. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0559",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "barcode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Barcode or GTIN when supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0560",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "supplier_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Preferred supplier counterparty. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0561",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ProductRead",
        "description": "Catalog item or inventory SKU with ownership and costing context. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedLocationRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "location"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location display name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0562",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "location_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Warehouse, store, branch or source-specific type. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0563",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedAddress"
              },
              {
                "type": "null"
              }
            ],
            "description": "Physical location address. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0564",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location active state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0565",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "owner_entity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Owner or operator if established. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0566",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "IANA timezone used for operational dates. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0567",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "LocationRead",
        "description": "Store, warehouse, branch or operating location. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedInventoryBalanceRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "inventory_balance"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "product_id": {
            "type": "string",
            "description": "Item represented by the stock balance. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0568",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "location_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Warehouse or store holding the stock. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0569",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "owner_entity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Entity owning the stock, distinct from its custodian. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0570",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "ownership_type": {
            "$ref": "#/components/schemas/NormalizedEnum_stock_ownership",
            "description": "Owned, consigned or third-party stock. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0571",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "quantity_on_hand": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Physical stock recorded at the observation time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0572",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "quantity_available": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-defined unreserved quantity available to sell. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0573",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "quantity_reserved": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Quantity committed or allocated. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0574",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "quantity_on_order": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Quantity expected from purchase orders. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0575",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "unit_of_measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit for all quantities on this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0576",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "carrying_value": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Book valuation of the represented stock. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0577",
                "x-classification": "Confidential",
                "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for carrying value. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0578",
                "x-classification": "Confidential",
                "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
              }
            }
          },
          "unit_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Unit valuation used for this snapshot. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0579",
                "x-classification": "Confidential",
                "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for unit cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0580",
                "x-classification": "Confidential",
                "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
              }
            }
          },
          "costing_method": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source costing policy. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0581",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "lot_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Batch or lot identifier when tracked. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0582",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "serial_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit serial number when tracked. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0583",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "expiry_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Product or lot expiry date when tracked. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0584",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          },
          "as_of": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time represented by the stock observation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0585",
            "x-classification": "Confidential",
            "x-availability": "Quantity, cost, history and stock ownership depend on product, module and tenant. A WMS balance need not be borrower-owned collateral."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "InventoryBalanceRead",
        "description": "Quantity and value snapshot by item, location and owner. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_stock_ownership": {
        "type": "string",
        "enum": [
          "owned",
          "consigned",
          "third_party",
          "unknown"
        ]
      },
      "NormalizedInventoryMovementRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "inventory_movement"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "product_id": {
            "type": "string",
            "description": "Affected item. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0586",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "location_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location affected by this movement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0587",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "movement_type": {
            "$ref": "#/components/schemas/NormalizedEnum_movement_type",
            "description": "Reason for stock movement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0588",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "quantity_delta": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Signed change in stock at this location. Positive adds stock; negative removes stock.",
            "x-field-id": "F0589",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "unit_of_measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit for quantity_delta. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0590",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Operational event time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0591",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "unit_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Cost per unit recorded for the movement. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0592",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for unit cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0593",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "total_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Signed carrying-value change associated with movement. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0594",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for total cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0595",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "order_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related sales order if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0596",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "purchase_order_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related purchase order if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0597",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "transfer_pair_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Correlation between paired inter-location movements. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0598",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Supporting receipt or adjustment evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0599",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "InventoryMovementRead",
        "description": "A receipt, issue, transfer or adjustment to stock. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_movement_type": {
        "type": "string",
        "enum": [
          "receipt",
          "sale",
          "return",
          "transfer",
          "adjustment",
          "production",
          "consumption",
          "write_off",
          "unknown"
        ]
      },
      "NormalizedPurchaseOrderRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "purchase_order"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Purchase order number. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0600",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "supplier_id": {
            "type": "string",
            "description": "Supplier commercial counterparty. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0601",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_purchase_status",
            "description": "Purchase order state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0602",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "ordered_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Purchase order date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0603",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "expected_delivery_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Expected receipt date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0604",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "total": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Ordered value under source tax convention. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0605",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for total. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0606",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_received": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Value of goods or services received if reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0607",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount received. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0608",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "line_items": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedPurchaseLine"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Ordered and received quantities, prices and item references. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0609",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "location_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Receiving location. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0610",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "PurchaseOrderRead",
        "description": "Supplier purchase commitment, separate from invoices and cash payments. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_purchase_status": {
        "type": "string",
        "enum": [
          "draft",
          "issued",
          "partially_received",
          "received",
          "cancelled",
          "closed",
          "unknown"
        ]
      },
      "NormalizedPurchaseLine": {
        "type": "object",
        "properties": {
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Ordered item."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Purchase line description."
          },
          "quantity_ordered": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Ordered quantity."
          },
          "quantity_received": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Recorded received quantity."
          },
          "unit_of_measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Quantity unit."
          },
          "unit_price": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedMoney"
              },
              {
                "type": "null"
              }
            ],
            "description": "Price per ordered unit."
          },
          "line_total": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedMoney"
              },
              {
                "type": "null"
              }
            ],
            "description": "Total ordered line amount."
          }
        }
      },
      "NormalizedShipmentRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "shipment"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "direction": {
            "type": "string",
            "description": "Inbound receipt or outbound dispatch. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0611",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "order_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related sales order. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0612",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "purchase_order_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related purchase order for inbound receipts. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0613",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "location_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Origin or receiving warehouse. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0614",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source shipment state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0615",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "carrier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Logistics carrier when supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0616",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "tracking_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source tracking reference. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0617",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "shipped_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Dispatch time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0618",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "delivered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Confirmed delivery time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0619",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "line_items": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedShipmentLine"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Product quantities shipped or received. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0620",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ShipmentRead",
        "description": "Physical receipt or dispatch linked to orders and stock. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedShipmentLine": {
        "type": "object",
        "properties": {
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Item shipped or received."
          },
          "quantity": {
            "type": "string",
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
            "description": "Quantity in this shipment."
          },
          "unit_of_measure": {
            "type": "string",
            "description": "Unit for the quantity."
          },
          "order_line_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Sales line being fulfilled."
          }
        },
        "required": [
          "quantity",
          "unit_of_measure"
        ]
      },
      "NormalizedProductionOrderRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "production_order"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Production or work order identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0621",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Finished item to produce. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0622",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_manufacturing_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Manufacturing work order state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0623",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "quantity_planned": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Target output quantity. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0624",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "quantity_completed": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Recorded good output quantity. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0625",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "quantity_scrapped": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Recorded scrapped output quantity. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0626",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "unit_of_measure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit for output quantities. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0627",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "planned_start_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Scheduled work start. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0628",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "planned_end_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Scheduled completion. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0629",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "completed_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual completion date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0630",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "material_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Material cost incurred under source accounting. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0631",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for material cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0632",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "labor_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Labor cost charged to the work order. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0633",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for labor cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0634",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "overhead_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Overhead assigned by the source. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0635",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for overhead cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0636",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "work_in_progress_value": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Source carrying value of incomplete production. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0637",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for work in progress value. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0638",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ProductionOrderRead",
        "description": "Manufacturing work order when licensed ERP/MES modules expose it. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_manufacturing_status": {
        "type": "string",
        "enum": [
          "planned",
          "released",
          "in_progress",
          "completed",
          "cancelled",
          "unknown"
        ]
      },
      "NormalizedProjectRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "project"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source project or job identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0639",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Project name. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0640",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "customer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Customer commissioning the project. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0641",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_project_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Project execution state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0642",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "started_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Actual or reported start date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0643",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "expected_end_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current expected completion date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0644",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "contract_value": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Current contract amount, where supplied. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0645",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for contract value. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0646",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "budget_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Approved cost budget. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0647",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for budget cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0648",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "actual_cost": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Cost posted to the project to date. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0649",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for actual cost. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0650",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_billed": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Cumulative invoicing assigned to the project. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0651",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount billed. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0652",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "retainage_receivable": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Contractually withheld receivable if exposed. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0653",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for retainage receivable. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0654",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "percent_complete": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-reported completion fraction. 0 to 1; retain method; billed fraction is not physical completion.",
            "x-field-id": "F0655",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ProjectRead",
        "description": "Construction or service job with cost and billing information. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_project_status": {
        "type": "string",
        "enum": [
          "planned",
          "active",
          "on_hold",
          "completed",
          "cancelled",
          "unknown"
        ]
      },
      "NormalizedApplicationRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "application"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "applicant_entity_id": {
            "type": "string",
            "description": "Business or person applying for credit. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0656",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "product_type": {
            "$ref": "#/components/schemas/NormalizedEnum_credit_product",
            "description": "Requested financial product. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0657",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_application_status",
            "description": "Application state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0658",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "requested_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Requested principal or limit. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0659",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for requested amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0660",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "requested_term_months": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Requested contractual term in months. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0661",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "purpose": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Declared use of funds. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0662",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "submitted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Application submission time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0663",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "decision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current decision artifact. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0664",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Resulting funded loan when one exists. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0665",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "guarantor_entity_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Proposed guarantors. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0666",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "collateral_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Offered collateral. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0667",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Submitted application evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0668",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Broker, direct, embedded or other source channel. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0669",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "institution_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Lender's application reference. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0670",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ApplicationRead",
        "description": "Credit request and its lifecycle. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_credit_product": {
        "type": "string",
        "enum": [
          "term_loan",
          "line_of_credit",
          "revolving",
          "invoice_finance",
          "merchant_finance",
          "equipment_finance",
          "auto",
          "mortgage",
          "consumer_installment",
          "bnpl",
          "other"
        ]
      },
      "NormalizedEnum_application_status": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "in_review",
          "conditional",
          "approved",
          "declined",
          "withdrawn",
          "expired",
          "unknown"
        ]
      },
      "NormalizedCreditFacilityRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "credit_facility"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "borrower_entity_id": {
            "type": "string",
            "description": "Obligated borrower. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0671",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "product_type": {
            "$ref": "#/components/schemas/NormalizedEnum_credit_product",
            "description": "Facility product. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0672",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contract currency. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0673",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "approved_limit": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Current approved facility limit. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0674",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for approved limit. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0675",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "drawn_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Outstanding utilization reported by source. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0676",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for drawn amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0677",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "available_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Undrawn availability under the contract. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0678",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for available amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0679",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "committed_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Committed portion of the facility. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0680",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for committed amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0681",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "effective_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Facility effective date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0682",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "maturity_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual end date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0683",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "review_due_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Next scheduled credit review. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0684",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source facility state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0685",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Individual loans or draws governed by the facility. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0686",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "covenant_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual monitoring covenants. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0687",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "CreditFacilityRead",
        "description": "Approved credit agreement and aggregate exposure. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedLoanRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "loan"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "borrower_entity_id": {
            "type": "string",
            "description": "Primary borrower. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0688",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "application_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Originating application if available. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0689",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "facility_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Parent facility if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0690",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "product_type": {
            "$ref": "#/components/schemas/NormalizedEnum_credit_product",
            "description": "Credit product type. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0691",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_loan_status",
            "description": "Servicing lifecycle state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0692",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "original_principal": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Principal at origination. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0693",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for original principal. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0694",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "outstanding_principal": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Principal still owed as of the balance date. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0695",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for outstanding principal. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0696",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "accrued_interest": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Accrued unpaid interest separately reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0697",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for accrued interest. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0698",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "fees_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Unpaid fees separately reported. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0699",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for fees due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0700",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "total_payoff": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Source payoff quote including its calculation date. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0701",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for total payoff. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0702",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "annual_interest_rate": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual annual rate expressed as a fraction. 9.5 percent is 0.095; not automatically APR.",
            "x-field-id": "F0703",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "apr": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Disclosed APR if explicitly supplied. Do not relabel nominal rate as APR.",
            "x-field-id": "F0704",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "rate_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_rate_type"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fixed or variable interest arrangement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0705",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "benchmark": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reference rate for variable pricing. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0706",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "spread": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Margin above benchmark, as a fraction. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0707",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "interest_day_count": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual day-count convention. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0708",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "payment_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_frequency"
              },
              {
                "type": "null"
              }
            ],
            "description": "Scheduled payment cadence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0709",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "scheduled_payment": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Current regular installment amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0710",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for scheduled payment. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0711",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "funded_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Initial funding date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0712",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "maturity_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contract maturity. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0713",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "next_payment_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Next due installment date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0714",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "days_past_due": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source days-past-due under its servicing policy. Preserve policy and as-of date; no automatic recalculation from one missed item.",
            "x-field-id": "F0715",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "past_due_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Contractual amount overdue. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0716",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for past due amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0717",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "charged_off_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount written off by the lender. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0718",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for charged off amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0719",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "as_of": {
            "type": "string",
            "format": "date",
            "description": "Date represented by balances and delinquency status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0720",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "autopay_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source-reported authorized automatic repayment setting. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0721",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "LoanRead",
        "description": "Loan contract and current servicing state. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_loan_status": {
        "type": "string",
        "enum": [
          "pending",
          "active",
          "delinquent",
          "defaulted",
          "restructured",
          "paid_off",
          "charged_off",
          "closed",
          "unknown"
        ]
      },
      "NormalizedEnum_rate_type": {
        "type": "string",
        "enum": [
          "fixed",
          "variable",
          "unknown"
        ]
      },
      "NormalizedInstallmentRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "installment"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_id": {
            "type": "string",
            "description": "Parent loan. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0722",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "sequence_number": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contract schedule sequence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0723",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "due_on": {
            "type": "string",
            "format": "date",
            "description": "Installment due date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0724",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "principal_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Principal due for this installment. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0725",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for principal due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0726",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "interest_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Interest due for this installment. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0727",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for interest due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0728",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "fees_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Fees due for this installment. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0729",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for fees due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0730",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "total_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Total contractual obligation. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0731",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for total due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0732",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "amount_paid": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Applied repayments against this obligation. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0733",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount paid. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0734",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "remaining_due": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Unpaid scheduled obligation. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0735",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for remaining due. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0736",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_repayment_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Schedule or repayment state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0737",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "InstallmentRead",
        "description": "One scheduled repayment obligation. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_repayment_status": {
        "type": "string",
        "enum": [
          "scheduled",
          "pending",
          "completed",
          "failed",
          "reversed",
          "waived",
          "unknown"
        ]
      },
      "NormalizedRepaymentRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "repayment"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_id": {
            "type": "string",
            "description": "Loan receiving the repayment. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0738",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "installment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Scheduled obligation if explicitly linked. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0739",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_repayment_status",
            "description": "Payment execution state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0740",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Total repayment amount. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0741",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0742",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "principal_applied": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount applied to principal. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0743",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for principal applied. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0744",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "interest_applied": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount applied to interest. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0745",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for interest applied. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0746",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "fees_applied": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount applied to fees. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0747",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for fees applied. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0748",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "unapplied_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Cash received but not yet allocated. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0749",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for unapplied amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0750",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "received_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time funds were received. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0751",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Servicing value date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0752",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "method": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Payment rail or method. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0753",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "failure_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Return or failure reason when supplied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0754",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "bank_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Matched bank movement when authorized. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0755",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reverses_repayment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Repayment reversed by this event. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0756",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "RepaymentRead",
        "description": "A servicing payment event and its allocation. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedCollateralRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "collateral"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Loan secured or proposed to be secured. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0757",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "facility_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related credit facility. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0758",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "collateral_type": {
            "$ref": "#/components/schemas/NormalizedEnum_collateral_type",
            "description": "Asset class. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0759",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Description identifying the pledged asset. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0760",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "owner_entity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Owner evidenced for the asset. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0761",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "serial_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Equipment or asset serial number. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0762",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "vin": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Vehicle identification number when relevant. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0763",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "property_identifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Land parcel or title identifier when relevant. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0764",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedAddress"
              },
              {
                "type": "null"
              }
            ],
            "description": "Location or real-property address. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0765",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "valuation": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Value established by a specified valuation source. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0766",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for valuation. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0767",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "valuation_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date of the valuation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0768",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "valuation_method": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Appraisal, book value or other stated method. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0769",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "appraiser": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Appraiser or valuation provider. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0770",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "lien_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Related registrations or filings. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0771",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "advance_rate": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Lender-approved fraction eligible for borrowing base. Contract parameter, not inferred from a registry filing.",
            "x-field-id": "F0772",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "insurance_expiry_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Expiry of supporting insurance evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0773",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "CollateralRead",
        "description": "Asset pledged or proposed to secure an obligation. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_collateral_type": {
        "type": "string",
        "enum": [
          "real_estate",
          "vehicle",
          "equipment",
          "inventory",
          "receivables",
          "cash",
          "securities",
          "all_assets",
          "other",
          "unknown"
        ]
      },
      "NormalizedGuaranteeRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "guarantee"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Guaranteed loan. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0774",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "facility_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Guaranteed facility. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0775",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "guarantor_entity_id": {
            "type": "string",
            "description": "Person or entity providing the guarantee. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0776",
            "x-classification": "Restricted",
            "x-availability": "Required when resource exists"
          },
          "guarantee_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_guarantee_type"
              },
              {
                "type": "null"
              }
            ],
            "description": "Nature of the guarantee. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0777",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "maximum_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Explicit guarantee cap, if applicable. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0778",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for maximum amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0779",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "signed_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Execution date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0780",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "expires_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual expiry if one exists. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0781",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Executed guarantee evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0782",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "GuaranteeRead",
        "description": "Documented personal or corporate guarantee. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_guarantee_type": {
        "type": "string",
        "enum": [
          "personal",
          "corporate",
          "limited",
          "unlimited",
          "unknown"
        ]
      },
      "NormalizedCovenantRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "covenant"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "facility_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Facility subject to this covenant. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0783",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Loan subject to this covenant. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0784",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "name": {
            "type": "string",
            "description": "Covenant label. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0785",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "attribute_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Metric used by the test. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0786",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "operator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Comparison operator. Allowed: gt, gte, lt, lte, eq; compare only compatible types and units.",
            "x-field-id": "F0787",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "threshold": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Contractual threshold. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0788",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "threshold_unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit of threshold. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0789",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "observed_value": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Value evaluated on this test date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0790",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "observed_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Date the covenant was evaluated. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0791",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_covenant_status",
            "description": "Test outcome under the agreement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0792",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "waived_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Documented waiver expiry. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0793",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "evidence_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Agreement or waiver establishing the rule. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0794",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "CovenantRead",
        "description": "Contractual test with a versioned threshold and observed result. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_covenant_status": {
        "type": "string",
        "enum": [
          "compliant",
          "breached",
          "waived",
          "not_evaluated",
          "unknown"
        ]
      },
      "NormalizedDecisionRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "decision"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "application_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Credit application assessed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0795",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Existing loan being reassessed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0796",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "outcome": {
            "$ref": "#/components/schemas/NormalizedEnum_decision_outcome",
            "description": "Recorded outcome or recommendation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0797",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "is_recommendation": {
            "type": "boolean",
            "description": "True if this is advisory and not an executed lender decision. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0798",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "policy_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Institution policy applied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0799",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "policy_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Policy revision applied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0800",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "approved_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Approved or recommended amount with actor context. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0801",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for approved amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0802",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "approved_term_months": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Approved or recommended term. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0803",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reason_codes": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Structured reasons supporting the outcome. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0804",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "conditions": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Conditions that must be satisfied. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0805",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "attribute_snapshot_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Immutable risk evidence used in decisioning. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0806",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "actor_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Institution user, service or agent responsible. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0807",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "decided_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Decision timestamp. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0808",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "supersedes_decision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Earlier decision superseded by this one. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0809",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "DecisionRead",
        "description": "Versioned lender decision or AMLOK recommendation with attributable evidence. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_decision_outcome": {
        "type": "string",
        "enum": [
          "approve",
          "decline",
          "refer",
          "conditional",
          "no_decision"
        ]
      },
      "NormalizedLienSearchRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "lien_search"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "debtor_name": {
            "type": "string",
            "description": "Exact debtor name submitted for search. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0810",
            "x-classification": "Restricted",
            "x-availability": "Required when resource exists"
          },
          "debtor_entity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Resolved AMLOK debtor entity. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0811",
            "x-classification": "Confidential",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "debtor_type": {
            "$ref": "#/components/schemas/NormalizedEnum_party_type",
            "description": "Person or business search subject. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0812",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "search_type": {
            "type": "string",
            "description": "Name, registration number, VIN or serial search when supported. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0813",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "identifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Search identifier if the chosen mode requires it. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0814",
            "x-classification": "Restricted",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "jurisdictions_requested": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Jurisdictions explicitly requested. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0815",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "jurisdictions_completed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Jurisdictions actually completed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0816",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_search_status",
            "description": "Search execution state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0817",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "searched_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider search execution time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0818",
            "x-classification": "Confidential",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "effective_through": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry's stated effective coverage time. Unknown does not mean current to the request time.",
            "x-field-id": "F0819",
            "x-classification": "Confidential",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "is_certified": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether an official certified search was returned. API search output is not automatically certified.",
            "x-field-id": "F0820",
            "x-classification": "Confidential",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "search_logic": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Provider or registry matching method. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0821",
            "x-classification": "Confidential",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "result_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Number of returned filings within completed scope. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0822",
            "x-classification": "Confidential",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "lien_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Normalized filing results. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0823",
            "x-classification": "Confidential",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "report_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Original report or certificate. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0824",
            "x-classification": "Restricted",
            "x-availability": "US UCC and Canadian provincial PPSA/RDPRM are separate products. Contract, jurisdiction, search type and redistribution rights must be established."
          },
          "stop_reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "account_cancellation",
                  "parent_cancelled",
                  "consent_revoked"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "processing_context": {
            "$ref": "#/components/schemas/NormalizedProcessingContext"
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "LienSearchRead",
        "description": "A search request with explicit debtor, jurisdiction and coverage. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_search_status": {
        "type": "string",
        "enum": [
          "queued",
          "running",
          "completed",
          "partial",
          "failed",
          "cancelled"
        ]
      },
      "NormalizedLienRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "lien"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "search_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Search that returned this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0825",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "filing_number": {
            "type": "string",
            "description": "Registry-assigned filing or registration number. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0826",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "original_filing_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Initial registration in the filing chain. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0827",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "lien_type": {
            "$ref": "#/components/schemas/NormalizedEnum_lien_type",
            "description": "Legal registry category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0828",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "jurisdiction": {
            "type": "string",
            "description": "Filing jurisdiction. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0829",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "registry_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry of record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0830",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_lien_status",
            "description": "Source-supported registration state. Status is not a legal determination of enforceability or priority.",
            "x-field-id": "F0831",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "raw_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unmodified registry or provider status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0832",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "filed_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Filing or registration date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0833",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "lapse_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported lapse date, if known. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0834",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "terminated_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reported termination or discharge date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0835",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "debtors": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedLienParty"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Debtors exactly as recorded, including unresolved parties. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0836",
            "x-classification": "Restricted",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "secured_parties": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedLienParty"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Secured parties exactly as recorded. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0837",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "collateral_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Registry's collateral text when available. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0838",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "collateral_categories": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Source or reviewed collateral classification. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0839",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "is_blanket_lien": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Whether evidence supports an all-assets description. Null if collateral text is unavailable or ambiguous.",
            "x-field-id": "F0840",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "registered_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount explicitly recorded by the registry, where applicable. Amount in major currency units. A UCC filing often has no debt amount; never treat missing amount as zero.",
                "x-field-id": "F0841",
                "x-classification": "Confidential",
                "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for registered amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0842",
                "x-classification": "Confidential",
                "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
              }
            }
          },
          "currency_basis": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Meaning of registered amount and currency as stated by source. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0843",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "document_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Images or reports supporting the filing. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0844",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "match_disposition": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_match_disposition"
              },
              {
                "type": "null"
              }
            ],
            "description": "Debtor identity review result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0845",
            "x-classification": "Confidential",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          },
          "priority_assessment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Separately reviewed priority conclusion, if commissioned. Never infer legal priority from filing date alone.",
            "x-field-id": "F0846",
            "x-classification": "Restricted",
            "x-availability": "Registry and provider dependent; no guaranteed balance, collateral detail, priority or certified coverage."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "LienRead",
        "description": "A security registration or other lien record from a stated registry. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_lien_type": {
        "type": "string",
        "enum": [
          "ucc",
          "ppsa",
          "rdprm",
          "tax",
          "judgment",
          "other",
          "unknown"
        ]
      },
      "NormalizedEnum_lien_status": {
        "type": "string",
        "enum": [
          "active",
          "lapsed",
          "terminated",
          "discharged",
          "unknown"
        ]
      },
      "NormalizedLienParty": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "description": "Recorded debtor, secured party, assignee or other role."
          },
          "name": {
            "type": "string",
            "description": "Party name exactly as recorded."
          },
          "entity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Resolved AMLOK party only when established."
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedAddress"
              },
              {
                "type": "null"
              }
            ],
            "description": "Address in registry evidence."
          },
          "source_party_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source identifier if provided."
          }
        },
        "required": [
          "role",
          "name"
        ]
      },
      "NormalizedFilingEventRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "filing_event"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "lien_id": {
            "type": "string",
            "description": "Registration chain affected. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0847",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "event_type": {
            "$ref": "#/components/schemas/NormalizedEnum_filing_event_type",
            "description": "Type of filing event. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0848",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "filing_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Identifier of the specific event filing. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0849",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Effective or recorded filing date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0850",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "previous_filing_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Prior linked filing identifier if provided. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0851",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "new_lapse_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Updated lapse date explicitly reported after this event. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0852",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Source event narrative. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0853",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence image or filing document. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0854",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "FilingEventRead",
        "description": "Amendment, continuation, assignment or termination in a registration chain. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_filing_event_type": {
        "type": "string",
        "enum": [
          "initial",
          "amendment",
          "continuation",
          "assignment",
          "termination",
          "discharge",
          "renewal",
          "unknown"
        ]
      },
      "NormalizedAttributeRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "attribute"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "key": {
            "type": "string",
            "description": "Stable attribute name defined in Derived Attributes. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0855",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "value_type": {
            "$ref": "#/components/schemas/NormalizedEnum_value_type",
            "description": "Type of the value. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0856",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Serialized scalar value matching value_type. Null if required inputs or coverage are missing.",
            "x-field-id": "F0857",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "unit": {
            "type": "string",
            "description": "Currency, ratio, days, count or other explicit unit. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0858",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_metric_status",
            "description": "Whether this value is usable for its stated interval. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0859",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "window_start": {
            "type": "string",
            "format": "date",
            "description": "Inclusive measurement interval start. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0860",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "window_end": {
            "type": "string",
            "format": "date",
            "description": "Exclusive measurement interval end. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0861",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "as_of": {
            "type": "string",
            "format": "date-time",
            "description": "Latest evidence included in calculation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0862",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "calculation_version": {
            "type": "string",
            "description": "Versioned formula or feature definition. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0863",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "input_resource_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Supporting records or immutable manifest reference. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0864",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "coverage_ratio": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Fraction of expected time/account coverage actually available. 0 to 1; null when denominator cannot be defined.",
            "x-field-id": "F0865",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "missing_reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_null_reason"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reason value is null. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0866",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "provider_score_scale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Native scale for licensed scores, if relevant. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0867",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "AttributeRead",
        "description": "Computed or provider-supplied risk attribute with transparent inputs. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_value_type": {
        "type": "string",
        "enum": [
          "decimal",
          "integer",
          "boolean",
          "string",
          "date"
        ]
      },
      "NormalizedEnum_metric_status": {
        "type": "string",
        "enum": [
          "available",
          "unavailable",
          "stale"
        ]
      },
      "NormalizedRiskSnapshotRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "risk_snapshot"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "assessment_type": {
            "type": "string",
            "description": "Assessment purpose or workflow. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0868",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "as_of": {
            "type": "string",
            "format": "date-time",
            "description": "Evidence cutoff used by this assessment. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0869",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "attribute_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Values used in the assessment. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0870",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "previous_snapshot_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Earlier comparable assessment. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0871",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "model_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Model used if a score was generated. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0872",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "model_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact model revision. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0873",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "score": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Model-specific score; unavailable until model is validated and entitled. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0874",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "score_scale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Meaning and allowed range of the model score. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0875",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "rating": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Policy-specific risk category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0876",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reason_codes": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Explanatory factors tied to evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0877",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "evidence_manifest_id": {
            "type": "string",
            "description": "Immutable list of input record versions. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0878",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "workflow_run_id": {
            "type": "string",
            "minLength": 1
          },
          "application_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "billing_usage_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "RiskSnapshotRead",
        "description": "Immutable assessment at a point in time, preserving subsequent changes separately. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedMonitorRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "monitor"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "baseline_snapshot_id": {
            "type": "string",
            "description": "Original assessment used for change detection. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0879",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "resource_types": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Resources monitored under this subscription. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0880",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "attribute_keys": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tracked calculated attributes. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0881",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_monitor_status",
            "description": "Monitoring subscription state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0882",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "cadence": {
            "type": "string",
            "description": "Requested refresh schedule, subject to source capability. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0883",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "ruleset_version": {
            "type": "string",
            "description": "Version of alert thresholds and conditions. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0884",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "last_evaluated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Latest successful evaluation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0885",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "next_evaluation_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Next planned evaluation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0886",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "blocked_reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "insufficient_credits",
                  "workload_limit_exceeded",
                  "missing_evidence",
                  "consent_unavailable"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "monitoring_period_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "MonitorRead",
        "description": "Configured monitoring scope, baseline and refresh policy. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_monitor_status": {
        "type": "string",
        "enum": [
          "active",
          "paused",
          "cancelled",
          "blocked"
        ]
      },
      "NormalizedAlertRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "alert"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "monitor_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Monitoring configuration generating the alert. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0887",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "alert_type": {
            "type": "string",
            "description": "Versioned signal key. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0888",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "severity": {
            "$ref": "#/components/schemas/NormalizedEnum_severity",
            "description": "Policy-assigned severity. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0889",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_alert_status",
            "description": "System-derived signal state. Open until comparable fresh evidence shows the triggering condition has cleared. No acknowledgement, case or borrower-contact workflow."
          },
          "detected_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the signal was detected. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0891",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "baseline_snapshot_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reference assessment. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0892",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "current_snapshot_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Assessment showing the change. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0893",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "attribute_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Metric underlying the signal. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0894",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "previous_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Prior comparable scalar value. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0895",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "current_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current comparable scalar value. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0896",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "threshold": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Rule threshold that was crossed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0897",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence-based explanation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0898",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "evidence_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Supporting records or documents. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0899",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "resolved_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the alert was resolved or dismissed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0901",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "AlertRead",
        "description": "Material change or risk signal with evidence and review state. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_severity": {
        "type": "string",
        "enum": [
          "info",
          "low",
          "medium",
          "high",
          "critical"
        ]
      },
      "NormalizedEnum_alert_status": {
        "type": "string",
        "enum": [
          "open",
          "resolved"
        ]
      },
      "NormalizedWorkflowRunRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "workflow_run"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "workflow_type": {
            "$ref": "#/components/schemas/NormalizedEnum_workflow_type",
            "description": "Risk workflow category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0946",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "workflow_version": {
            "type": "string",
            "description": "Version of the orchestration definition. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0947",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_workflow_status",
            "description": "Execution state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0948",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "application_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Application context if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0949",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "loan_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Loan context if applicable. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0950",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "input_resource_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Immutable input references. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0951",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "output_resource_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Produced assessments, checks, risk findings or reports. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0952",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Execution start. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0954",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Terminal completion time. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0955",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "parent_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Run that triggered this one, such as Monitor re-entering Underwrite. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0956",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "product": {
            "type": "string",
            "enum": [
              "insights",
              "signal"
            ]
          },
          "input_manifest_id": {
            "type": "string",
            "minLength": 1
          },
          "initial_input_manifest_id": {
            "type": "string",
            "minLength": 1
          },
          "workload_id": {
            "type": "string",
            "minLength": 1
          },
          "billing_usage_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "monitoring_period_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "blocked_reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "insufficient_credits",
                  "workload_limit_exceeded",
                  "missing_evidence"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "stop_reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "account_cancellation",
                  "parent_cancelled",
                  "consent_revoked"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "failure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedProcessingFailure"
              },
              {
                "type": "null"
              }
            ]
          },
          "attempt": {
            "type": "integer",
            "minimum": 1
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "WorkflowRunRead",
        "description": "Coordinated execution of Verify, Underwrite, Monitor or Investigate. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_workflow_type": {
        "type": "string",
        "enum": [
          "verify",
          "underwrite",
          "monitor",
          "investigate"
        ]
      },
      "NormalizedEnum_workflow_status": {
        "type": "string",
        "enum": [
          "queued",
          "running",
          "waiting_for_data",
          "completed",
          "failed",
          "cancelled",
          "waiting_for_credits",
          "blocked_by_limit"
        ]
      },
      "NormalizedProcessingFailure": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "provider_unavailable",
              "processing_timeout",
              "invalid_evidence",
              "unsupported_scope",
              "internal_processing_error"
            ]
          },
          "message": {
            "type": "string",
            "minLength": 1
          },
          "retryable": {
            "type": "boolean"
          },
          "recovery_action": {
            "type": "string",
            "enum": [
              "retry_same_run",
              "correct_evidence",
              "contact_support"
            ]
          },
          "retry_after_seconds": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "occurred_at": {
            "type": "string",
            "format": "date-time"
          },
          "request_id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "code",
          "message",
          "retryable",
          "recovery_action",
          "retry_after_seconds",
          "occurred_at",
          "request_id"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "retryable": {
                  "const": true
                }
              }
            },
            "then": {
              "properties": {
                "recovery_action": {
                  "const": "retry_same_run"
                },
                "retry_after_seconds": {
                  "type": "integer",
                  "minimum": 0
                }
              }
            },
            "else": {
              "properties": {
                "recovery_action": {
                  "type": "string",
                  "enum": [
                    "correct_evidence",
                    "contact_support"
                  ]
                },
                "retry_after_seconds": {
                  "type": "null"
                }
              }
            }
          }
        ]
      },
      "NormalizedRequirementRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "requirement"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "workflow_run_id": {
            "type": "string",
            "description": "Run requiring this evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0958",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "requirement_type": {
            "type": "string",
            "description": "Requested evidence category. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0959",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "description": {
            "type": "string",
            "description": "Specific evidence requirement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0960",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_requirement_status",
            "description": "Collection and review status. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0961",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "due_on": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "description": "Requested completion date. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0962",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "document_ids": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Evidence submitted for this requirement. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0963",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "reviewer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Reviewer accepting or rejecting evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0964",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "waiver_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Documented basis for a permitted waiver. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0965",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "rejection": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEvidenceRejection"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "RequirementRead",
        "description": "Evidence required to complete an assessment workflow. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedEnum_requirement_status": {
        "type": "string",
        "enum": [
          "missing",
          "requested",
          "received",
          "accepted",
          "rejected",
          "waived"
        ]
      },
      "NormalizedEvidenceRejection": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "unreadable",
              "wrong_document_type",
              "subject_mismatch",
              "incomplete_period",
              "expired_document",
              "other"
            ]
          },
          "message": {
            "type": "string",
            "minLength": 1
          },
          "document_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "reviewed_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "code",
          "message",
          "document_ids",
          "reviewed_at"
        ],
        "additionalProperties": false
      },
      "NormalizedAuditEventRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "audit_event"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "actor_id": {
            "type": "string",
            "description": "User, API client or agent responsible. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0966",
            "x-classification": "Restricted",
            "x-availability": "Required when resource exists"
          },
          "actor_type": {
            "type": "string",
            "description": "Class of principal. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0967",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "action": {
            "type": "string",
            "description": "Action performed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0968",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "resource_type": {
            "type": "string",
            "description": "Type of affected object. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0969",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "resource_id": {
            "type": "string",
            "description": "Affected object. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0970",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "resource_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Version observed or produced. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0971",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "occurred_at": {
            "type": "string",
            "format": "date-time",
            "description": "Action timestamp. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0972",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "request_id": {
            "type": "string",
            "description": "Request correlation identifier. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0973",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "workflow_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Related orchestration run. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0974",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "outcome": {
            "type": "string",
            "description": "Success, denial or failure result. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0975",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "change_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Description of changed fields without sensitive raw values. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0976",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "AuditEventRead",
        "description": "Append-only record of actions, versions and access. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "NormalizedReconciliationLinkRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable identifier scoped to the client tenant. Never use a provider ID as the public primary key.",
            "x-field-id": "F0001",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "object": {
            "type": "string",
            "const": "reconciliation_link"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Business or person to which this record relates. Null for tenant-level configuration and unresolved subjects.",
            "x-field-id": "F0003",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time AMLOK first stored this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0004",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the normalized representation last changed. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0005",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source was observed by AMLOK. Do not imply this is the economic event time.",
            "x-field-id": "F0006",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "effective_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Time the source states this version became valid. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0007",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "record_version": {
            "type": "integer",
            "description": "Monotonically increasing AMLOK version for this resource. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0008",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tombstone timestamp for a source or AMLOK deletion. Null for records not deleted; retain only under the configured policy.",
            "x-field-id": "F0009",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "source_refs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedSourceRef"
            },
            "description": "Evidence references contributing to this record. A known empty array is valid for a newly client-created record.",
            "x-field-id": "F0010",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "field_provenance": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NormalizedFieldProvenance"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Field-level source, extraction, transformation and quality details. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0011",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "data_status": {
            "$ref": "#/components/schemas/NormalizedEnum_data_status",
            "description": "Whether the requested resource is complete for its stated scope. Completeness is relative to declared fields, sources and time interval.",
            "x-field-id": "F0012",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "missing_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NormalizedMissingField"
            },
            "description": "Unavailable field paths and their explicit reasons. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0013",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "schema_version": {
            "type": "string",
            "description": "Contract version used to serialize this record. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0014",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional caller-owned correlation identifier. Scoped to tenant; uniqueness only when explicitly contracted.",
            "x-field-id": "F0015",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "extensions": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "description": "Namespaced extra provider fields without changing the core schema. Access-controlled and documented per provider; no provider tokens.",
            "x-field-id": "F0016",
            "x-classification": "Restricted",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "from_resource_type": {
            "type": "string",
            "description": "Source side of the reconciliation relationship. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0977",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "from_resource_id": {
            "type": "string",
            "description": "Record being linked or allocated. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0978",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "to_resource_type": {
            "type": "string",
            "description": "Target side of the relationship. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0979",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "to_resource_id": {
            "type": "string",
            "description": "Record receiving the linkage or allocation. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0980",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "link_type": {
            "type": "string",
            "description": "Relationship such as settlement, payment_allocation or duplicate_evidence. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0981",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "allocated_amount": {
            "type": "object",
            "properties": {
              "amount": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                    "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Amount attributed to this linkage where the relationship is monetary. Amount in major currency units. Pair with currency; preserve precision; zero differs from unavailable.",
                "x-field-id": "F0982",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Currency for allocated amount. Uppercase ISO 4217 code when known; null for unsupported/unidentified currency, retain source code.",
                "x-field-id": "F0983",
                "x-classification": "Confidential",
                "x-availability": "Source, module, country, consent and contracted permissions determine population."
              }
            }
          },
          "status": {
            "$ref": "#/components/schemas/NormalizedEnum_reconciliation_status",
            "description": "Matching/reconciliation state. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0984",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "method_version": {
            "type": "string",
            "description": "Version of deterministic or reviewed match process. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0985",
            "x-classification": "Confidential",
            "x-availability": "Required when resource exists"
          },
          "confidence": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
                "description": "Exact decimal string in major units. Do not use binary floating-point arithmetic."
              },
              {
                "type": "null"
              }
            ],
            "description": "Calibrated probabilistic match confidence if used. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0986",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          },
          "review_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NormalizedEnum_review_status"
              },
              {
                "type": "null"
              }
            ],
            "description": "Human disposition of uncertain matches. Preserve original evidence; do not invent missing values.",
            "x-field-id": "F0987",
            "x-classification": "Confidential",
            "x-availability": "Source, module, country, consent and contracted permissions determine population."
          }
        },
        "required": [
          "id",
          "object",
          "created_at",
          "updated_at",
          "record_version",
          "source_refs",
          "data_status",
          "missing_fields",
          "schema_version"
        ],
        "title": "ReconciliationLinkRead",
        "description": "Evidence-based allocation connecting records without collapsing distinct economic events. Population depends on source and tenant entitlement. Read representation includes all authorized populated fields. Missing or restricted fields carry explicit availability information; this API does not support field projection."
      },
      "FinancialBillingRateCard": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "object": {
            "type": "string",
            "minLength": 1
          },
          "record_version": {
            "type": "integer",
            "minimum": 1
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized workspace whose unified billing account owns this report."
          },
          "currency": {
            "type": "string",
            "enum": [
              "CAD"
            ]
          },
          "effective_from": {
            "type": "string",
            "format": "date-time"
          },
          "effective_to": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "agreement_id": {
            "type": "string",
            "minLength": 1
          },
          "agreement_version": {
            "type": "string",
            "minLength": 1
          },
          "supersedes_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialBillingRate"
            }
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable workspace billing snapshot used for this financial representation."
          }
        },
        "required": [
          "id",
          "object",
          "record_version",
          "created_at",
          "updated_at",
          "workspace_id",
          "currency",
          "effective_from",
          "effective_to",
          "agreement_id",
          "agreement_version",
          "supersedes_id",
          "rates",
          "snapshot_id"
        ],
        "additionalProperties": false
      },
      "FinancialBillingRate": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "enum": [
              "insights",
              "signal"
            ]
          },
          "tier": {
            "type": "string",
            "enum": [
              "standard",
              "advanced",
              "complex"
            ]
          },
          "unit": {
            "type": "string",
            "enum": [
              "completed_underwriting",
              "active_account_month"
            ]
          },
          "base_rate": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "discount_percent": {
            "type": "string",
            "pattern": "^(?:100(?:\\.0{1,2})?|[0-9]{1,2}(?:\\.[0-9]{1,2})?)$"
          },
          "effective_rate": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "pricing_basis": {
            "type": "string",
            "enum": [
              "published",
              "negotiated"
            ],
            "description": "A custom quote uses negotiated pricing under an existing tier, with explicit agreed limits."
          },
          "workload_limits": {
            "$ref": "#/components/schemas/FinancialBillingWorkloadLimits"
          },
          "billing_timing": {
            "type": "string",
            "enum": [
              "month_start_or_first_activation",
              "successful_output_completion"
            ]
          }
        },
        "required": [
          "product",
          "tier",
          "unit",
          "base_rate",
          "discount_percent",
          "effective_rate",
          "pricing_basis",
          "workload_limits",
          "billing_timing"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "product": {
                  "const": "insights"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "completed_underwriting"
                },
                "workload_limits": {
                  "properties": {
                    "record_counting_basis": {
                      "const": "per_underwriting"
                    },
                    "minimum_banking_history_months": {
                      "type": "integer",
                      "minimum": 12
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "product": {
                  "const": "signal"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "active_account_month"
                },
                "workload_limits": {
                  "properties": {
                    "record_counting_basis": {
                      "const": "new_records_per_month"
                    },
                    "minimum_banking_history_months": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "product": {
                  "const": "signal"
                }
              }
            },
            "then": {
              "properties": {
                "billing_timing": {
                  "const": "month_start_or_first_activation"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "product": {
                  "const": "insights"
                }
              }
            },
            "then": {
              "properties": {
                "billing_timing": {
                  "const": "successful_output_completion"
                }
              }
            }
          }
        ],
        "description": "Published rates represent regular pay-as-you-go pricing; enterprise customers use their negotiated rate card. CAD rates have exactly two decimals. Round the discounted effective unit rate first using decimal half-up rounding; multiply by billable quantity and round each charge to two decimals. Negotiated effective rates already include any discount."
      },
      "FinancialBillingWorkloadLimits": {
        "type": "object",
        "properties": {
          "bank_accounts": {
            "type": "integer",
            "minimum": 0
          },
          "business_integrations": {
            "type": "integer",
            "minimum": 0
          },
          "record_limit": {
            "type": "integer",
            "minimum": 1
          },
          "record_counting_basis": {
            "type": "string",
            "enum": [
              "per_underwriting",
              "new_records_per_month"
            ]
          },
          "record_counting_rule": {
            "type": "string",
            "enum": [
              "distinct_record_versions"
            ]
          },
          "minimum_banking_history_months": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 12
              },
              {
                "type": "null"
              }
            ]
          },
          "analysis_scope": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "bank_accounts",
          "business_integrations",
          "record_limit",
          "record_counting_basis",
          "record_counting_rule",
          "minimum_banking_history_months",
          "analysis_scope"
        ],
        "additionalProperties": false
      },
      "RatesExport": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schema_version",
          "report_type",
          "snapshot_id",
          "as_of",
          "rows"
        ],
        "properties": {
          "schema_version": {
            "const": "1.0.0"
          },
          "report_type": {
            "const": "rates"
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialBillingRateCard"
            }
          }
        }
      },
      "FinancialWorkloadReport": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "object": {
            "const": "workload",
            "type": "string"
          },
          "workspace_id": {
            "type": "string",
            "minLength": 1
          },
          "subject_id": {
            "type": "string",
            "minLength": 1
          },
          "product": {
            "type": "string",
            "enum": [
              "insights",
              "signal"
            ]
          },
          "workflow_run_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "monitoring_period_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "rate_card_id": {
            "type": "string",
            "minLength": 1
          },
          "tier": {
            "type": "string",
            "enum": [
              "standard",
              "advanced",
              "complex"
            ]
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "period_start": {
            "type": "string",
            "format": "date-time"
          },
          "period_end": {
            "type": "string",
            "format": "date-time"
          },
          "record_counting_basis": {
            "type": "string",
            "enum": [
              "per_underwriting",
              "new_records_per_month"
            ]
          },
          "bank_accounts": {
            "$ref": "#/components/schemas/FinancialWorkloadDimension"
          },
          "business_integrations": {
            "$ref": "#/components/schemas/FinancialWorkloadDimension"
          },
          "records": {
            "$ref": "#/components/schemas/FinancialWorkloadDimension"
          },
          "status": {
            "type": "string",
            "enum": [
              "within_limits",
              "at_limit",
              "blocked"
            ]
          },
          "blocking_dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "bank_accounts",
                "business_integrations",
                "records",
                "analysis_scope"
              ]
            }
          },
          "analysis_scope": {
            "type": "string",
            "minLength": 1
          },
          "input_manifest_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "object",
          "workspace_id",
          "subject_id",
          "product",
          "workflow_run_id",
          "monitoring_period_id",
          "rate_card_id",
          "tier",
          "as_of",
          "period_start",
          "period_end",
          "record_counting_basis",
          "bank_accounts",
          "business_integrations",
          "records",
          "status",
          "blocking_dimensions",
          "analysis_scope",
          "input_manifest_id"
        ],
        "additionalProperties": false
      },
      "FinancialWorkloadDimension": {
        "type": "object",
        "properties": {
          "used": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 0
          },
          "remaining": {
            "type": "integer",
            "minimum": 0
          }
        },
        "required": [
          "used",
          "limit",
          "remaining"
        ],
        "additionalProperties": false
      },
      "WorkloadExport": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schema_version",
          "report_type",
          "snapshot_id",
          "as_of",
          "rows"
        ],
        "properties": {
          "schema_version": {
            "const": "1.0.0"
          },
          "report_type": {
            "const": "workload"
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialWorkloadReport"
            }
          }
        }
      },
      "EvidenceExport": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schema_version",
          "evidence_set_id",
          "rows"
        ],
        "properties": {
          "schema_version": {
            "const": "1.0.0"
          },
          "evidence_set_id": {
            "type": "string",
            "minLength": 1
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Evidence"
            }
          }
        }
      },
      "DataExport": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schema_version",
          "snapshot_id",
          "rows"
        ],
        "properties": {
          "schema_version": {
            "const": "1.0.0"
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataRecord"
            }
          }
        }
      },
      "ReportBillingUsageExport": {
        "type": "object",
        "properties": {
          "schema_version": {
            "type": "string",
            "const": "1.4.2"
          },
          "report_type": {
            "type": "string",
            "const": "usage"
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportBillingUsage"
            }
          }
        },
        "required": [
          "schema_version",
          "report_type",
          "snapshot_id",
          "as_of",
          "rows"
        ],
        "additionalProperties": false
      },
      "ReportBillingUsage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "object": {
            "type": "string",
            "minLength": 1
          },
          "record_version": {
            "type": "integer",
            "minimum": 1
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized workspace whose unified billing account owns this report."
          },
          "billing_account_id": {
            "type": "string",
            "minLength": 1
          },
          "product": {
            "type": "string",
            "enum": [
              "insights",
              "signal"
            ]
          },
          "tier": {
            "type": "string",
            "enum": [
              "standard",
              "advanced",
              "complex"
            ]
          },
          "source_resource_id": {
            "type": "string",
            "minLength": 1,
            "description": "Workflow-run ID for Insights; borrower/business ID for Signal. Follow workflow_run_id, application_id, input_manifest_id and risk_snapshot_id for underwriting evidence, or monitoring_period_id for the single Signal account-month."
          },
          "unit": {
            "type": "string",
            "enum": [
              "completed_underwriting",
              "active_account_month"
            ],
            "description": "Signal counts each active borrower/business once per workspace per month, including change-driven reassessment without an additional Insights charge, regardless of checks, monitoring configurations, facilities or data connections. Cancellation immediately stops further processing and usage deductions. Previously spent credits remain consumed; cancelled unfinished work creates no charge."
          },
          "quantity": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]+)?$"
          },
          "unit_rate": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "currency": {
            "type": "string",
            "enum": [
              "CAD"
            ]
          },
          "amount": {
            "type": "string",
            "pattern": "^-?(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Signed CAD amount with exactly two decimal places. Negative values represent deductions or reversing adjustments."
          },
          "entry_type": {
            "type": "string",
            "enum": [
              "charge",
              "reversal"
            ]
          },
          "reverses_usage_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "posted"
            ]
          },
          "subject_id": {
            "type": "string",
            "minLength": 1
          },
          "workflow_run_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "application_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "input_manifest_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "risk_snapshot_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "monitoring_period_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "occurred_at": {
            "type": "string",
            "format": "date-time"
          },
          "posted_at": {
            "type": "string",
            "format": "date-time"
          },
          "billing_period_start": {
            "type": "string",
            "format": "date-time"
          },
          "billing_period_end": {
            "type": "string",
            "format": "date-time"
          },
          "rate_card_id": {
            "type": "string",
            "minLength": 1
          },
          "ledger_entry_id": {
            "type": "string",
            "minLength": 1
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable workspace billing snapshot used for this financial representation."
          }
        },
        "required": [
          "id",
          "object",
          "record_version",
          "created_at",
          "updated_at",
          "workspace_id",
          "billing_account_id",
          "product",
          "tier",
          "source_resource_id",
          "unit",
          "quantity",
          "unit_rate",
          "currency",
          "amount",
          "entry_type",
          "reverses_usage_id",
          "status",
          "subject_id",
          "workflow_run_id",
          "application_id",
          "input_manifest_id",
          "risk_snapshot_id",
          "monitoring_period_id",
          "occurred_at",
          "posted_at",
          "billing_period_start",
          "billing_period_end",
          "rate_card_id",
          "ledger_entry_id",
          "snapshot_id"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "product": {
                  "const": "insights"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "completed_underwriting"
                },
                "workflow_run_id": {
                  "type": "string",
                  "minLength": 1
                },
                "input_manifest_id": {
                  "type": "string",
                  "minLength": 1
                },
                "risk_snapshot_id": {
                  "type": "string",
                  "minLength": 1
                },
                "monitoring_period_id": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "product": {
                  "const": "signal"
                }
              }
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "active_account_month"
                },
                "monitoring_period_id": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "entry_type": {
                  "const": "charge"
                }
              }
            },
            "then": {
              "properties": {
                "quantity": {
                  "const": "1"
                },
                "amount": {
                  "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$"
                },
                "reverses_usage_id": {
                  "type": "null"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "entry_type": {
                  "const": "reversal"
                }
              }
            },
            "then": {
              "properties": {
                "amount": {
                  "pattern": "^-(0|[1-9][0-9]*)\\.[0-9]{2}$"
                },
                "reverses_usage_id": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        ]
      },
      "ReportBillingLedgerExport": {
        "type": "object",
        "properties": {
          "schema_version": {
            "type": "string",
            "const": "1.4.2"
          },
          "report_type": {
            "type": "string",
            "const": "ledger"
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportBillingCreditEntry"
            }
          }
        },
        "required": [
          "schema_version",
          "report_type",
          "snapshot_id",
          "as_of",
          "rows"
        ],
        "additionalProperties": false
      },
      "ReportBillingCreditEntry": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "object": {
            "type": "string",
            "minLength": 1
          },
          "record_version": {
            "type": "integer",
            "minimum": 1
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized workspace whose unified billing account owns this report."
          },
          "billing_account_id": {
            "type": "string",
            "minLength": 1
          },
          "sequence": {
            "type": "integer",
            "minimum": 0
          },
          "currency": {
            "type": "string",
            "enum": [
              "CAD"
            ]
          },
          "amount": {
            "type": "string",
            "pattern": "^-?(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Signed CAD amount with exactly two decimal places. Negative values represent deductions or reversing adjustments."
          },
          "balance_after": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "entry_type": {
            "type": "string",
            "enum": [
              "funding",
              "usage",
              "refund",
              "adjustment",
              "reversal"
            ]
          },
          "movement_id": {
            "type": "string",
            "minLength": 1
          },
          "reverses_entry_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "posted_at": {
            "type": "string",
            "format": "date-time"
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable workspace billing snapshot used for this financial representation."
          }
        },
        "required": [
          "id",
          "object",
          "record_version",
          "created_at",
          "updated_at",
          "workspace_id",
          "billing_account_id",
          "sequence",
          "currency",
          "amount",
          "balance_after",
          "entry_type",
          "movement_id",
          "reverses_entry_id",
          "posted_at",
          "client_reference",
          "snapshot_id"
        ],
        "additionalProperties": false
      },
      "ReportBillingStatementExport": {
        "type": "object",
        "properties": {
          "schema_version": {
            "type": "string",
            "const": "1.4.2"
          },
          "report_type": {
            "type": "string",
            "const": "statement"
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportBillingStatement"
            }
          }
        },
        "required": [
          "schema_version",
          "report_type",
          "snapshot_id",
          "as_of",
          "rows"
        ],
        "additionalProperties": false
      },
      "ReportBillingStatement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "object": {
            "type": "string",
            "minLength": 1
          },
          "record_version": {
            "type": "integer",
            "minimum": 1
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized workspace whose unified billing account owns this report."
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "billing_account_id": {
            "type": "string",
            "minLength": 1
          },
          "currency": {
            "type": "string",
            "enum": [
              "CAD"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "provisional",
              "final"
            ]
          },
          "revision": {
            "type": "integer",
            "minimum": 1
          },
          "supersedes_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "opening_balance": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "funding": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "usage": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "refunds": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "closing_balance": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "adjustments": {
            "type": "string",
            "pattern": "^-?(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Signed CAD amount with exactly two decimal places. Negative values represent deductions or reversing adjustments."
          },
          "ledger_sequence_from": {
            "type": "integer",
            "minimum": 0
          },
          "ledger_sequence_to": {
            "type": "integer",
            "minimum": 0
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable workspace billing snapshot used for this financial representation."
          }
        },
        "required": [
          "id",
          "object",
          "record_version",
          "created_at",
          "updated_at",
          "workspace_id",
          "from",
          "to",
          "billing_account_id",
          "currency",
          "status",
          "revision",
          "supersedes_id",
          "as_of",
          "opening_balance",
          "funding",
          "usage",
          "refunds",
          "closing_balance",
          "adjustments",
          "ledger_sequence_from",
          "ledger_sequence_to",
          "snapshot_id"
        ],
        "additionalProperties": false
      },
      "ReportBillingFundingExport": {
        "type": "object",
        "properties": {
          "schema_version": {
            "type": "string",
            "const": "1.4.2"
          },
          "report_type": {
            "type": "string",
            "const": "funding"
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1
          },
          "as_of": {
            "type": "string",
            "format": "date-time"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportBillingFunding"
            }
          }
        },
        "required": [
          "schema_version",
          "report_type",
          "snapshot_id",
          "as_of",
          "rows"
        ],
        "additionalProperties": false
      },
      "ReportBillingFunding": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "object": {
            "type": "string",
            "minLength": 1
          },
          "record_version": {
            "type": "integer",
            "minimum": 1
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "Authorized workspace whose unified billing account owns this report."
          },
          "billing_account_id": {
            "type": "string",
            "minLength": 1
          },
          "currency": {
            "type": "string",
            "enum": [
              "CAD"
            ]
          },
          "amount": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)\\.[0-9]{2}$",
            "description": "Nonnegative CAD amount, exact decimal string in major units."
          },
          "source": {
            "type": "string",
            "enum": [
              "annual_prepayment",
              "customer_top_up",
              "promotional_top_up"
            ]
          },
          "payment_method_type": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "card",
                  "bank_account"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "settled",
              "failed",
              "cancelled"
            ]
          },
          "initiated_at": {
            "type": "string",
            "format": "date-time"
          },
          "settled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "failure_code": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "invoice_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "receipt_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "ledger_entry_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "client_reference": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot_id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable workspace billing snapshot used for this financial representation."
          }
        },
        "required": [
          "id",
          "object",
          "record_version",
          "created_at",
          "updated_at",
          "workspace_id",
          "billing_account_id",
          "currency",
          "amount",
          "source",
          "payment_method_type",
          "status",
          "initiated_at",
          "settled_at",
          "failure_code",
          "invoice_reference",
          "receipt_reference",
          "ledger_entry_id",
          "client_reference",
          "snapshot_id"
        ],
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API key",
        "description": "Server-to-server API key bound to exactly one workspace, institution tenant and environment. No caller-supplied workspace override is accepted. Do not use in public browser code."
      }
    }
  },
  "webhooks": {
    "resourceEvent": {
      "post": {
        "description": "Resource event envelope. Apply the existing raw-body HMAC verifier; persist then acknowledge. Delivery may be duplicated or out of order.",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Event"
              },
              "example": {
                "id": "evt_synthetic",
                "type": "origination.completed",
                "occurred_at": "2026-11-06T12:00:00Z",
                "resource_type": "origination",
                "resource_id": "orgn_synthetic",
                "resource_version": 4,
                "borrower_id": "bor_synthetic",
                "environment": "sandbox"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Durably accepted."
          }
        }
      }
    }
  },
  "x-export-schemas": {
    "data": "#/components/schemas/DataExport",
    "risk_package": "#/components/schemas/RiskPackage",
    "evidence": "#/components/schemas/EvidenceExport",
    "rates": "#/components/schemas/RatesExport",
    "workload": "#/components/schemas/WorkloadExport",
    "usage": "#/components/schemas/ReportBillingUsageExport",
    "credits": "#/components/schemas/ReportBillingLedgerExport",
    "statements": "#/components/schemas/ReportBillingStatementExport",
    "funding": "#/components/schemas/ReportBillingFundingExport"
  },
  "x-browser-message-schema": "#/components/schemas/HubMessage",
  "x-event-resources": {
    "embedding_session.completed": {
      "resource_type": "embedding_session",
      "read_operation_id": "getEmbeddingSession",
      "scope": "connections:read"
    },
    "connection.action_required": {
      "resource_type": "connection",
      "read_operation_id": "getConnection",
      "scope": "connections:read"
    },
    "connection.status_changed": {
      "resource_type": "connection",
      "read_operation_id": "getConnection",
      "scope": "connections:read"
    },
    "origination.action_required": {
      "resource_type": "origination",
      "read_operation_id": "getOrigination",
      "scope": "insights:read"
    },
    "origination.status_changed": {
      "resource_type": "origination",
      "read_operation_id": "getOrigination",
      "scope": "insights:read"
    },
    "origination.completed": {
      "resource_type": "origination",
      "read_operation_id": "getOrigination",
      "scope": "insights:read"
    },
    "origination.failed": {
      "resource_type": "origination",
      "read_operation_id": "getOrigination",
      "scope": "insights:read"
    },
    "risk_package.created": {
      "resource_type": "risk_package",
      "read_operation_id": "getRiskPackage",
      "scope": "results:read"
    },
    "monitor.status_changed": {
      "resource_type": "monitor",
      "read_operation_id": "getMonitor",
      "scope": "signal:read"
    },
    "monitoring_run.completed": {
      "resource_type": "monitoring_run",
      "read_operation_id": "getMonitoringRun",
      "scope": "signal:read"
    },
    "monitoring_run.failed": {
      "resource_type": "monitoring_run",
      "read_operation_id": "getMonitoringRun",
      "scope": "signal:read"
    },
    "alert.created": {
      "resource_type": "alert",
      "read_operation_id": "getAlert",
      "scope": "signal:read"
    },
    "alert.resolved": {
      "resource_type": "alert",
      "read_operation_id": "getAlert",
      "scope": "signal:read"
    },
    "export.ready": {
      "resource_type": "export",
      "read_operation_id": "getExport",
      "scope": "exports:read"
    },
    "export.failed": {
      "resource_type": "export",
      "read_operation_id": "getExport",
      "scope": "exports:read"
    },
    "data.updated": {
      "resource_type": "connection",
      "read_operation_id": "getConnection",
      "scope": "data:read"
    },
    "document.status_changed": {
      "resource_type": "document",
      "read_operation_id": "getDocument",
      "scope": "evidence:read"
    },
    "billing.payment_updated": {
      "resource_type": "billing_payment",
      "read_operation_id": "getBillingPayment",
      "scope": "billing:read"
    },
    "billing.transaction_posted": {
      "resource_type": "billing_transaction",
      "read_operation_id": "getBillingTransaction",
      "scope": "billing:read"
    },
    "deal_snapshot.created": {
      "resource_type": "deal_snapshot",
      "read_operation_id": "getDealSnapshot",
      "scope": "signal:read"
    }
  },
  "x-development-profile": {
    "id": "development-example",
    "version": "1",
    "max_json_bytes": 1048576,
    "max_upload_bytes": 20971520,
    "max_document_pages": 200,
    "allowed_document_mime_types": [
      "application/pdf",
      "image/png",
      "image/jpeg",
      "image/webp"
    ],
    "document_types": [
      "financial_statement",
      "bank_statement",
      "identity_document",
      "business_registration",
      "tax_return",
      "lending_terms",
      "risk_policy",
      "other"
    ],
    "session_ttl_seconds": 900,
    "download_ttl_seconds": 300,
    "snapshot_ttl_seconds": 3600,
    "data_feed_retention_seconds": 2592000,
    "event_retention_seconds": 2592000,
    "export_retention_seconds": 86400,
    "poll_min_interval_seconds": 5,
    "poll_max_interval_seconds": 60,
    "webhook_timeout_seconds": 10,
    "webhook_max_body_bytes": 65536,
    "webhook_rotation_overlap_seconds": 86400,
    "rate_limits": [
      {
        "group": "reads",
        "requests": 120,
        "window_seconds": 60
      },
      {
        "group": "commands",
        "requests": 30,
        "window_seconds": 60
      },
      {
        "group": "uploads",
        "requests": 10,
        "window_seconds": 60
      }
    ]
  }
}
