campaign.amount_raised.value as a number. Distinct from
currentAmount because personal / team campaigns fall back to
total_amount_raised for currentAmount — here we deliberately
report amount_raised (raw, or 0 when absent) so overlays can
distinguish "raised on this exact campaign" from the pooled total.
CampaignAmounts.currentAmount for the campaign.
fundraisingEvent.goal.value as a number. 0 when the fundraising
event has no goal or none is supplied.
fundraisingEvent.total_amount_raised.value, capped by
campaignRaisedAmount when the campaign has raised less than the
event total (protects against a campaign-scoped bar overshooting
the campaign's own contribution). 0 when the event exposes no
total.
CampaignAmounts.goalAmount for the campaign.
CampaignAmounts.originalGoalAmount for the campaign.
fundraisingEvent.goal.value when present (and forceCampaignGoal
is false), else campaign.goal.value. 0 when neither is
available.
The bigger of fundraisingEvent.total_amount_raised and the
previously-computed value — reflects the umbrella event's live
total. Falls back to campaign.total_amount_raised when no
fundraising event is provided.
Scalar breakdown returned by extractCampaignFundraisingEventAmounts. Combines the campaign-scoped fields from CampaignAmounts with the cross-cutting "where does the campaign sit inside the fundraising event?" projection overlays render on fundraising-dashboard views.