Many teams waste time building perfect data models and semantic layers before they have real product needs. Start small with minimal structures, then add complexity only when you actually need it.
What do you think of this approach? The biggest thing I see that I disagree with is people coming at it from the exact opposite direction. I need to make sure all of my data is in one place. I need to make sure I have like gold tables for every single part of the business. I need to make sure I have a semantic layer implemented with data definitions for every single like column. I much more frequently see people erring on the side of overbuild the solution, start with something like that, and then on top of that, layer on capabilities.