- refactor the code so that all defines are generated in the same place - generate common_type after all defines are generated - protect (with defines) structures and UBOs that are not needed, based on the variant