Declarative task dependencies