t() :: %ExDeltaExchange.Product{
annualized_funding: String.t(),
basis_factor_max_limit: String.t(),
contract_type: String.t(),
contract_unit_currency: String.t(),
contract_value: String.t(),
created_at: String.t(),
default_leverage: String.t(),
description: String.t(),
funding_method: String.t(),
id: non_neg_integer(),
impact_size: 0,
initial_margin: 0,
initial_margin_scaling_factor: String.t(),
is_quanto: boolean(),
liquidation_penalty_factor: String.t(),
maintenance_margin: String.t(),
maintenance_margin_scaling_factor: String.t(),
maker_commission_rate: String.t(),
max_leverage_notional: String.t(),
notional_type: String.t(),
position_size_limit: non_neg_integer(),
price_band: String.t(),
product_specs: map(),
quoting_asset: ExDeltaExchange.Product.Asset.t(),
settlement_time: String.t(),
settling_asset: ExDeltaExchange.Product.Asset.t() | nil,
spot_index: map(),
state: String.t(),
symbol: String.t(),
taker_commission_rate: String.t(),
tick_size: String.t(),
trading_status: String.t(),
underlying_asset: ExDeltaExchange.Product.Asset.t(),
updated_at: String.t()
}