Oh and for different variant types - it depends on how different we think the fields of each type need to be. If they are 99% the same, then we're all good. If they are only 50% the same, well, then we can think about having different types of variants with different fields. (there are many ways to support that in an API if we think its the right choice)