Have you ever looked at our codebase and wondered: "is it a Source or an Image? A Dataset or a Project? Why do we have both datasets[] and projects[] on the same record?"
These aren't just naming inconsistencies — they're symptoms of a missing piece. We never wrote down what our system actually is at the conceptual level. So over the years, storage details and legacy names leaked into services, routes, types, and UI code. And every new dev that joins has to reverse-engineer the domain from implementation artifacts.