Top level scheduler semantics

Where does this go?

We need a list of types of operations that shouldn't overlap. This is the rule set for the scheduler, or at least part of it.