Refactor Scheduler to move restrictions to separate classes
Scheduler should be refactored to separate restriction definition and processing in external C++ classes.
There is a need for a generic API of what a restriction is and which parameters it applies to in order to create an encapsulation.