@type t() :: %Travel.Stays.Types.StaysRoomRate{
available_payment_methods: [atom()] | nil,
base_amount: (String.t() | nil) | nil,
base_currency: String.t() | nil,
board_type: atom() | nil,
cancellation_timeline:
[Travel.Stays.Types.StaysRateCancellationTimeline.t()] | nil,
code: (String.t() | nil) | nil,
conditions: [Travel.Stays.Types.StaysRateCondition.t()] | nil,
deal_types: [String.t()] | nil,
description: (String.t() | nil) | nil,
due_at_accommodation_amount: (String.t() | nil) | nil,
due_at_accommodation_currency: String.t() | nil,
estimated_commission_amount: (String.t() | nil) | nil,
estimated_commission_currency: (String.t() | nil) | nil,
expires_at: String.t() | nil,
fee_amount: (String.t() | nil) | nil,
fee_currency: String.t() | nil,
id: String.t() | nil,
loyalty_programme_required: boolean(),
name: (String.t() | nil) | nil,
negotiated_rate_id: (String.t() | nil) | nil,
payment_type: atom() | nil,
public_amount: (String.t() | nil) | nil,
public_currency: (String.t() | nil) | nil,
quantity_available: (integer() | nil) | nil,
source: atom() | nil,
supported_loyalty_programme: (atom() | nil) | nil,
tax_amount: (String.t() | nil) | nil,
tax_currency: String.t() | nil,
total_amount: String.t() | nil,
total_currency: String.t() | nil
}