protected bool Payment(Dictionary <CoinType, int> coins) { return(PaymentRequest?.Invoke(coins) ?? false); }