Based on your description the only prescriptive thing one can say is lean into composition and avoid inheritance. While there are some pitfalls with composition it is easier to unpack and restructure than inheritance is. Changing requirements will of course incur changing data structures etc. but hopefully this can be avoided a bit by using LUT/indexes and other things to minimize impact.
Not to be a downer since a lot of JEvans’ content is great. People should really give .NET a try. I don’t know if we are just old greybeard curmudgeons who look at this and go “is this a new thing? haven’t we been doing this for decades?”, but .NET out of the box with a few packages for databases, logging, etc is so pleasant you don’t even think about it. Maybe it’s just not a vocal community idk.
There are a handful of these every day on the front page. It is very jarring when they suddenly shift topics completely, using some vaguely tangential connection between what they started with, and the vapid thing they want to write about. Honestly - it’s wankery.
People who post to concerntroll should be flagged as shitposters.
First person who finds an actual answer to this can potentially make a lot of money. Think it over.