It was the fact that at each stage of the game, we summarized the
defaults and requirements for each role, ignoring the internal makeup
(i.e., what roles were composed into it, etc.).

Advertising

This then imposes somewhat of an ordering with role composition. The
role tree will need to be traversed breadth first, and conflicts/
requirements resolved on a level by level basis.

And it sounds correct to me.

It sounds "correct" to me as well (in theory,.. get it ,... in
theory :P).

However, I do worry about how it will work out in practice. Part of
the goal of roles (and I have been preaching this one since the
hackathon) is that they are easier to use than multiple inheritance,
have fewer headaches than mix-ins and are more useful than
interfaces. Imposing ordering as described above may make things
easier, or it may make things harder, only time and experience will
tell. I am going to give this some more thought over the weekend, and
see what I come up with.