Fetch the full donations record (campaignID → donations array).
The complete Record<string, TiltifyDonationWithTestFlag[]>
straight off the store. Re-renders whenever the record reference
changes (i.e. any campaign's donations list updates).
Fetch a single campaign's donations list (memo-stable [] when
the id is unknown to the store).
Campaign id to narrow on.
Implementation signature. When
idis supplied, returns the per-campaign donations list; otherwise the full record. The empty fallback (EMPTY_DONATIONS) is frozen + memo-stable to keep the selector identity stable across renders.