We're not guaranteeing right now, and that was okay for my simple tests. I'll change to a List to guarantee mixins first, then primary type, then primary's supertypes. That would be best for the indexing workflow, which is the chief use case for fcr:transform right now.

Do you think I should order mixins by name and supertypes by name, just to get more predictability? Do you think we should include the supertypes of mixin's (which are formally types of the node as well, just as the supertypes of the primary are)? I think the answer to both questions is yes, but I'll defer to you.