You could just have this as part of the Studio specific xblock content. I would make the default assumption that children are always ordered, but then you could add a check for a class level attribute `unordered_children` or something similar that specifies to use the unordered option.

Also, sequences and courses are by their nature ordered, so just having the `vertical` check seems wrong to me.

Finally, why can't you just use `xblock.parent` to get the parent?