OptionalcurrencyWhen set, only donations matching this currency (case-insensitive)
are counted. Omit to aggregate every currency into byCurrency.
OptionalendExclusive upper bound on donation.completed_at. Accepts an ISO
8601 string, a Date, or null/undefined for "no upper bound".
Typically the schedule block's ends_at.
OptionalincludeInclude donations flagged test: true in the store. Defaults to
false so overlays don't leak test-donation state into
production-facing block totals. Test donations arrive over the
same public:direct:donation_updated channel with sourceType: "test" and are stamped { test: true } by
_processTestDonation; they never hit
tiltify_campaign_donations, so a REST baseline already excludes
them and this default keeps the baseline + delta view consistent.
OptionalstartInclusive lower bound on donation.completed_at. Accepts an ISO
8601 string, a Date, or null/undefined for "no lower bound".
Used both as the schedule-block boundary and as the WS-firehose
asOf cutoff for reconciling with a REST baseline — pass the
asOf timestamp from GET /schedules/campaigns/{id}/raised
to strip donations already reflected in the baseline sum.
Filter knobs for usePipelineDonationSum. All bounds default to "no bound" so callers can request either an open-ended running total or an explicit
[start, end)window.