SOLUTION TO MY ORIGINAL QUESTION
解决我的原始问题
Thanks to the brilliance of Dan's answer below I've managed to reduce my original code significantly. I have dropped some of flexibility I originally had built i.e. use multi properties vs static prop, but an easy fix in a later version and a no-brainer in terms of code size :) Again, many thanks to Dan. In this example I've included 2 T