One could describe a software dependency as being some code or library that is used in a particular package or project which without the required dependency, one would not be able to package the project as a fully functioning program. An 'optional dependency' sounds to a novice software engineer like a contradiction -- e.g. that a project is both dependent on a particular package, but the dependency is also optional and not strictly required.