The approach I (plan to) use for my Lua scripts is to make hidden changes to tmp values, especially tmp3 and tmp4 values, essentially acting as a compatibility/version indicator for the element. This enables me to update elements virtually however I want without breaking saves, as "unintended consequences" would only occur if these obscure tmp3 and/or tmp4 values were manually changed. However, trying to do this on a C++ mod (or worse, official TPT) would probably turn the code into spaghetti faster than a KitchenAid can make pasta.
FILT is the only stock element I know of using anything like this feature. It currently supports just 12 out of its theoretical 4+ billion possible modes. However, the wiki gives a warning not to use unsupported modes, and that warning doesn't apply as clearly to future tmp3/tmp4 features. Some elements (e.g. VIRS and PIPE) already use both tmp3 and tmp4 values, so this approach won't work for them.
@8a742ce284f535d3200 (View Post)
If you add a feature, unintended consuequences the save maker couldnt have accounted for will happen.