What problem does it solve? URL search params in TanStack Router applications need type-safe validation, correct serialization, and predictable inheritance across routes. Without proper patterns, developers lose type safety, break loader caching, or silently drop params during navigation. ## Core Features & Use Cases - Schema-Based Validation: Define validateSearch with Zod (via @tanstack/zod-adapter), Valibot, or ArkType so search params are parsed into fully typed objects with defaults and fallbacks. - Reading and Writing Params: Use Route.useSearch(), getRouteApi(), useSearch({ strict: false }), Link with function-form search, and useNavigate() to read and update params without losing existing state. - Search Middlewares and Serialization: Apply retainSearchParams and stripSearchParams middlewares, customize parseSearch/stringifySearch, and scope loaderDeps so loaders only re-run when relevant params change. - Use Case: Build a paginated product list where page, filter, and sort live in the URL, survive navigation, inherit from a parent route, and trigger data refetches only when the page changes. ## Quick Start Add a Zod search schema with validateSearch to my TanStack Router products route and show me how to read and update the page param.