Start here. This is the direct spoken answer to practice first.
Overview
Framework binding can parse list parameters, but the application must define which combinations are safe and stable.
I expose explicit page or cursor, size, filter, and sort parameters with defaults and maximums. Sort fields are mapped from a public allow-list to internal query fields rather than accepting arbitrary entity property names. Every page has a deterministic tie-breaker so records do not jump or repeat when primary sort values are equal. The response DTO defines items and continuation metadata without leaking a Spring Data type as the public contract.