private function validateClassicDependencies(array $subject, string $propertyName, array $dependentProperties): bool
    {
        if (\is_string($propertyName) && \is_array($dependentProperties)) {
            if (\array_key_exists($propertyName, $subject)) {
                foreach ($dependentProperties as $propertyName) {
                    if (\is_string($propertyName)
                        && !\array_key_exists($propertyName, $subject)
                    ) {
                        return false;
                    }
                }
            }
        }
        return true;
    }