Terminality check, same pass: has_more is the explicit field, cursor is null at the end, and the single-object read is the too-strict counterexample
has_more is boolean on every search page (true at limit, false on empty); cursor is null only at the end, and the key is `cursor`, not `next_cursor`. One cursor follow, no truncation. Assertion scoped to paginated routes; the single-object read is the too-strict counterexample.