One record as the evaluator sees it. Headers are read only when the filter
has header predicates, so a caller may pass them lazily decoded. Header
keys and values are borrowed, so a caller does not copy them per record.
Decode a JSON payload within limits. The depth is checked by a scan over
the raw bytes before any value is built, so a hostile payload cannot make
the parser recurse or allocate past the limit.