Added some constraints on the 'from' and 'to' attributes for a consumer provided variant, to help the user avoid attempting various cases that are not yet really supported. - The 'to' and 'from' attributes must be not empty. Empty 'from' basically means "I can transform _any_ input" and an empty 'to' basically means "I can produce _any_ output (without knowing what it is)", neither of which make much sense. - The 'to' attributes must be a subset of the 'from' attributes. Adding attributes to make a more specific variant is not required yet, and will break when switching 'compatible when missing' to default to true. For now, disable this case.