You're very welcome! Just to be clear, these are the types of dependencies I was thinking:
- this task can only end a set time after that task ends (the cleaning of the job site can start during the job, but can't end until the job does)
- this task can start after that task has started (I can start processing lab data after the first experiments have come in - I don't have to wait to the end)
etc.!
I think it should be possible to define many dependencies / constraints and have the program simply freeze and flag when there are conflicts due to overdefining. I'm sure there's a way to calculate the degrees of freedom, though the math isn't something I can be bothered with rn haha