as far as I can tell, the api is one-size-fits-all, fields for incompatible hardware are just marked as false/null - e.g.
"has_air_suspension": false,
"has_ludicrous_mode": false,
"sun_roof_installed": null,
"third_row_seats": "<invalid>",
This is the field TeslaFi uses for battery heater monitoring on S/X
'charge_state' -> "battery_heater_on": false,
Worth mentioning
'climate_state' -> "battery_heater": false,
'climate_state' -> "battery_heater_no_power": null,
'climate_state' -> "is_preconditioning": false,
'climate_state' -> "defrost_mode": 0,
and for scheduling
"not_enough_power_to_heat": null,
"scheduled_departure_time": 1574411400,
"scheduled_charging_pending": false,
"user_charge_enable_request": null,
"managed_charging_start_time": null,
"charge_port_cold_weather_mode": false,
"scheduled_charging_start_time": null,
"managed_charging_user_canceled": false