REST
Ingest's original engine. Only `{method,url,headers,params,data,json,timeout,allow_redirects,ssl,proxy}` are forwarded to the transport.
Errors are detected in band
A 4xx that is not 429 is an error. So is a 2xx whose body is not JSON (the first 200 characters are
recorded), and so is a 2xx whose body matches the resource's error_path / error_conditions. An API
that answers 200 OK with {"ok": false} has failed, and Ingest treats it that way.
Pagination
none | offset | page | cursor | link | next_url_in_body. Every paginator declares a stop condition.
Offset paging always re-emits the limit parameter on later pages; page-numbered APIs use page,
never offset; link follows RFC 5988 with a re-merged-params self-heal for servers that 400 or 422
on a bare next link. Stop precedence is has_more_path first, then a short page. Hard caps: 1000
pages, 500,000 records per work item. A response that switches between dict and list is fatal.
Credential proof
A trivial authenticated call. 404, 405 and 410 are not credential verdicts: they mean the path was wrong, not the key.