Check whether a SET of documents satisfies a checklist — completeness, cheaply.
USE THIS WHEN you have an application / onboarding pack and need "do we have the required
documents, and what's still missing?" Each document is CLASSIFIED (one cheap page-1 read —
never full field extraction or multi-page), then matched against the checklist's required
slots. (For "is a document genuine?" use verify_document; to identify ONE document use
classify_document; for the identity gate use verify_identity.)
Define the checklist ONE of two ways:
- `scheme`: a named preset — "income_proof", "lending_prequal", "rental_application".
- `requirements`: an ad-hoc checklist — a list of document-type names like
["payslip","bank_statement"], or objects {"key":..., "accepts":[types], "optional":bool}.
`documents` is a list (up to 12), each ONE of: {"url": "https://..."} (public link, fetched
server-side) or {"bytes_b64": "...", "filename": "statement.pdf"} (inline).
Returns `{complete, slots[] (key, satisfied, matched), missing[], documents[] (filename,
classified_type), unmatched_documents[]}`. COVERAGE, not approval — that the right document
TYPES are present, NOT that any is genuine (run verify_document) or that an application is
approved. Documents are never stored.