Topic Design Best Practices

Our clients want telemetry data from our buildings via MQTT. We have 10+ buildings and 100,000~ data points. We will double in size in 5 years. Our devices can publish MQTT. I would like to aggregate data with HiveMQ and filter data for clients based on devices that monitor their inventory using a plugin. Each device has 5-10 data points. I’ve seen examples where 1.) a topic is used for each data point and 2.) all data points are part of a single topic in a JSON format. In either option I can filter on content/Topic to reroute data to the correct client. Which is considered the best practice a topic per data point or a topic per device based on the current/future number of devices? Are there other things to consider? Has someone published a paper on this?