Explicit high-level dependencies in Puppet