donate method
Tells the system this intent just happened, so it can offer it later.
Returns whether the platform did anything. False is a real answer, not a failure: donation is an iOS 16+ concept and Android has no counterpart to route it to.
Implementation
@override
Future<bool> donate(String id, Map<String, Object?> args) async {
if (!donationsAccepted) return false;
donations.add(RecordedDonation(id, Map.unmodifiable(args)));
return true;
}