@@ -26,67 +26,55 @@ class Market(BaseModel):
2626 """
2727
2828 ticker : str
29- event_ticker : str | None = None
30- market_type : str | None = None
29+ event_ticker : str
30+ market_type : str
3131 title : str | None = None
3232 subtitle : str | None = None
33- yes_sub_title : str | None = None
34- no_sub_title : str | None = None
35- status : str | None = None
33+ yes_sub_title : str
34+ no_sub_title : str
35+ status : str
3636
3737 # Price fields (FixedPointDollars)
38- yes_bid : DollarDecimal | None = Field (
39- default = None ,
38+ yes_bid : DollarDecimal = Field (
4039 validation_alias = AliasChoices ("yes_bid_dollars" , "yes_bid" ),
4140 )
42- yes_ask : DollarDecimal | None = Field (
43- default = None ,
41+ yes_ask : DollarDecimal = Field (
4442 validation_alias = AliasChoices ("yes_ask_dollars" , "yes_ask" ),
4543 )
46- no_bid : DollarDecimal | None = Field (
47- default = None ,
44+ no_bid : DollarDecimal = Field (
4845 validation_alias = AliasChoices ("no_bid_dollars" , "no_bid" ),
4946 )
50- no_ask : DollarDecimal | None = Field (
51- default = None ,
47+ no_ask : DollarDecimal = Field (
5248 validation_alias = AliasChoices ("no_ask_dollars" , "no_ask" ),
5349 )
54- last_price : DollarDecimal | None = Field (
55- default = None ,
50+ last_price : DollarDecimal = Field (
5651 validation_alias = AliasChoices ("last_price_dollars" , "last_price" ),
5752 )
58- previous_yes_bid : DollarDecimal | None = Field (
59- default = None ,
53+ previous_yes_bid : DollarDecimal = Field (
6054 validation_alias = AliasChoices ("previous_yes_bid_dollars" , "previous_yes_bid" ),
6155 )
62- previous_yes_ask : DollarDecimal | None = Field (
63- default = None ,
56+ previous_yes_ask : DollarDecimal = Field (
6457 validation_alias = AliasChoices ("previous_yes_ask_dollars" , "previous_yes_ask" ),
6558 )
66- previous_price : DollarDecimal | None = Field (
67- default = None ,
59+ previous_price : DollarDecimal = Field (
6860 validation_alias = AliasChoices ("previous_price_dollars" , "previous_price" ),
6961 )
70- notional_value : DollarDecimal | None = Field (
71- default = None ,
62+ notional_value : DollarDecimal = Field (
7263 validation_alias = AliasChoices ("notional_value_dollars" , "notional_value" ),
7364 )
7465 settlement_value : DollarDecimal | None = Field (
7566 default = None ,
7667 validation_alias = AliasChoices ("settlement_value_dollars" , "settlement_value" ),
7768 )
78- liquidity : DollarDecimal | None = Field (
79- default = None ,
69+ liquidity : DollarDecimal = Field (
8070 validation_alias = AliasChoices ("liquidity_dollars" , "liquidity" ),
8171 )
8272
8373 # Size/volume fields (FixedPointCount)
84- yes_bid_size : FixedPointCount | None = Field (
85- default = None ,
74+ yes_bid_size : FixedPointCount = Field (
8675 validation_alias = AliasChoices ("yes_bid_size_fp" , "yes_bid_size" ),
8776 )
88- yes_ask_size : FixedPointCount | None = Field (
89- default = None ,
77+ yes_ask_size : FixedPointCount = Field (
9078 validation_alias = AliasChoices ("yes_ask_size_fp" , "yes_ask_size" ),
9179 )
9280 no_bid_size : FixedPointCount | None = Field (
@@ -97,43 +85,40 @@ class Market(BaseModel):
9785 default = None ,
9886 validation_alias = AliasChoices ("no_ask_size_fp" , "no_ask_size" ),
9987 )
100- volume : FixedPointCount | None = Field (
101- default = None ,
88+ volume : FixedPointCount = Field (
10289 validation_alias = AliasChoices ("volume_fp" , "volume" ),
10390 )
104- volume_24h : FixedPointCount | None = Field (
105- default = None ,
91+ volume_24h : FixedPointCount = Field (
10692 validation_alias = AliasChoices ("volume_24h_fp" , "volume_24h" ),
10793 )
108- open_interest : FixedPointCount | None = Field (
109- default = None ,
94+ open_interest : FixedPointCount = Field (
11095 validation_alias = AliasChoices ("open_interest_fp" , "open_interest" ),
11196 )
11297
11398 # Timestamps
114- created_time : datetime | None = None
115- updated_time : datetime | None = None
116- open_time : datetime | None = None
117- close_time : datetime | None = None
118- latest_expiration_time : datetime | None = None
99+ created_time : datetime
100+ updated_time : datetime
101+ open_time : datetime
102+ close_time : datetime
103+ latest_expiration_time : datetime
119104 expected_expiration_time : datetime | None = None
120105 expiration_time : datetime | None = None
121106 settlement_ts : datetime | None = None
122107 occurrence_datetime : datetime | None = None
123108
124109 # Metadata
125- settlement_timer_seconds : int | None = None
126- result : str | None = None
127- can_close_early : bool | None = None
128- fractional_trading_enabled : bool | None = None
129- expiration_value : str | None = None
110+ settlement_timer_seconds : int
111+ result : str
112+ can_close_early : bool
113+ fractional_trading_enabled : bool
114+ expiration_value : str
130115 category : str | None = None
131116 risk_limit_cents : int | None = None
132117 strike_type : str | None = None
133118 floor_strike : Decimal | None = None
134119 cap_strike : Decimal | None = None
135- rules_primary : str | None = None
136- rules_secondary : str | None = None
120+ rules_primary : str
121+ rules_secondary : str
137122
138123 # v3.18.0 backfill (#159). mve_selected_legs is list[MveSelectedLeg] and
139124 # price_ranges is list[PriceRange] on the wire — kept as list[dict] here;
@@ -146,8 +131,8 @@ class Market(BaseModel):
146131 is_provisional : bool | None = None
147132 mve_collection_ticker : str | None = None
148133 mve_selected_legs : list [dict [str , Any ]] | None = None
149- price_level_structure : str | None = None
150- price_ranges : list [dict [str , Any ]] | None = None
134+ price_level_structure : str
135+ price_ranges : NullableList [dict [str , Any ]]
151136 primary_participant_key : str | None = None
152137
153138 model_config = {"extra" : "allow" , "populate_by_name" : True }
@@ -263,6 +248,6 @@ class MarketCandlesticks(BaseModel):
263248 # NullableList: Kalshi has returned JSON null for required list fields
264249 # in other envelopes (v0.9.0 Series fix). Coerce None -> [] to match the
265250 # pattern used on Orderbook.yes/no and envelope-level list fields.
266- candlesticks : NullableList [Candlestick ] = []
251+ candlesticks : NullableList [Candlestick ]
267252
268253 model_config = {"extra" : "allow" }
0 commit comments