public static IEnumerable <Money> At( this IEnumerable <Money> moneys, Timestamp time) => moneys.Flatten(money => money.At(time));
public Money PayableAt(Money money, Amount expense, Timestamp time) => money is GiftCard gift && gift.ValidBefore.CompareTo(time) < 0 ? Amount.Zero(expense.Currency)