This improvement should help reduce boilerplate xml in hw<board>settings.xml files and what is even more important, bring common types (such as uart function enums of different boards) under same base (C & C++) types so that they have same numerical values. This will simplify board initialization code, as no matter which board, the uart type (for example) could be passed directly to common uart initialization code. No need for per board switch/case or translation table blocks.
This is implemented by extending some of the already existing features:
Allow "cloneof" attribute to reference other objects.
Allow some other attributes to override cloned values (options, limits, defaultvalue).
Make cloned fields as typedef's of parent types in flight & ground (c, c++) uavobjgenerators.
This is already used in my Omnibus F4/F3 branch, I'm just splitting it into several PRs.