`atLeastOneRequired` should be renamed to some appropriate name, e.g. `atLeastOneRemoteDirectoryRequired`.
Now it is confused: "what should it define?"