Use names that match the value’s real meaning and align with established/public API conventions.

Practical rules:

Examples:

// Semantic rename with deprecation
export interface MutationState<TData, TError, TVariables, TScope = unknown> {
  /** @deprecated Use `scope` instead. */
  context: TScope | undefined
  scope: TScope | undefined
}

// Keep naming consistent with public API
// useQueries({ queries }) ... setQueries(queries)
const defaultedQueries = /* keep `queries` naming */

// Angular injection-context signaling
export function injectIsFetching(filters?: QueryFilters, queryClient?: QueryClient) {
  // uses `inject(...)` internally; name reflects requirement
}

// Provider-aligned naming
useQuery({
  queryKey,
  queryFn: ({ client, signal }) => {/* ... */},
})

// Stability signaling
experimental_promise: Promise<TData>