Dynamically generate shift restrictions