``` sealed class Payment(val amount: BigDecimal) {...
# server
r
Copy code
sealed class Payment(val amount: BigDecimal) {
  // shared behaviors of all payments
}
data class InternationalPayment(val countryCode: String, override val amount: BigDecimal) : Payment(amount)
data class OtherPaymentType(val other: String, override val amount: BigDecimal) : Payment(amount)