Constraints-driven scheduling and resource assignment | Synapse