Adding water_heater platform to MQTT integration - I'm stuck

I’ve hit the limit of my understanding. I am trying to add the water_heater platform to the mqtt integration. I created the water_heater.py file to the mqtt integration and attempted to write a simplest thing I could modeling it after other mqtt platforms. hassfest doesn’t report any issues, but when I start hass i get some not too helpful errors in the log: https://pastebin.com/R9eJeqzx

Here is the full water_heater.py file: https://pastebin.com/gzFT0UUQ

Config looks like this:


water_heater:
  - platform: mqtt

Any help would be greatly appreciated. I hope to contribute back to this great project, but the learning curve is steep.