Modify change production penalty
Give a control for what part of shields is lost for changing city production. As maximum plan, make a control of any possible switch as well as Civ4 production style (each unit pr building type has a separate stock that can be sold if becomes obsolete). As minimum plan, give a control over if "Special" genus is considered a wonder (Civ2 compatibility).
Yes, it would be time to finally get a clean design for this. I've started to work on it several time over the years, only to throw away the design turned bad.
Maybe we could replace enum production_class_type with some improvement/unit type attribute (like production_class that defaults to a function of building_genus), and make a game setting that applies a percentage to penalized shields. I don't think an effect is needed here. Something disturbs me in the fact that wether a production is helped by caravans is calculated from action enablers, but maybe it's nothing to fix in it. If we want a more complicated setting, we can create a Lua tool (like, "city_changes_production" signal + (City):change_shields(amount, prod_type?) + shields related city read properties), there are other tickets for that.