I didn't play with it because I wasn't sure if every sensor out there is natively MQTT capable? ANd if it is, it still has to document the topics it responds to, right? For example, I have a Sonoff temp sensor, how do I know what topic it publishes to and how do I query it? The documentation said nothing about MQTT.
I’m happy to tell you that you are fundamentally misunderstanding. This is good because reality is even simpler.
Z2M takes ordinary Zigbee devices, and generates MQTT messages from them. The devices are oblivious to this, and have no idea what MQTT is. They just act like Zigbee devices.
Z2M just publishes messages on a dedicated topic per device, with all the relevant information in that message. Generally for battery powered devices like temperature sensors, you won’t “query” their state by asking the device - because they sleep with the radio off. Instead you just wait for an update (and store it as needed).
Zigbee2mqtt has a huge number of supported devices (here's their official list [0]), which can also be expanded if the existing mappings don't work.
It took me a minute to find, but the full MQTT structure is detailed here [1], and then individual devices detail what they expose on their page (e.g. this [2] is a random Sonoff temperature sensor). This means that the topic "zigbee2mqtt/sonoff-temp-example" will just have a simple JSON message with '{"humidity":46.93,"temperature":21.73, ...}'.