##### SUMMARY
While `ansible-config dump` is a very useful tool for determining the configuration used by Ansible at runtime, it does have a major flaw: its output is not machine parseable.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
ansible-config

##### ADDITIONAL INFORMATION
ansible-config should have an option to dump config in a machine parseable format like JSON or YAML, so it can be consumed by other tools.

"""Find all non-collection roles that have an argument spec file.
        Note that argument specs do not actually need to exist within the spec file.
        :param role_paths: A tuple of one or more role paths. When a role with the same name
            is found in multiple paths, only the first-found role is returned.
        :param name_filters: A tuple of one or more role names used to filter the results.
        :returns: A set of tuples consisting of: role name, full role path
        """
        found = set()
        found_names = set()
        for path in role_paths:
            if not os.path.isdir(path):
                continue
            
            for entry in os.listdir(path):
                role_path = os.path.join(path, entry)
                
                for specfile in self.ROLE_ARGSPEC_FILES:
                    full_path = os.path.join(role_path, 'meta', specfile)
                    if os.path.exists(full_path):
                        if name_filters is None or entry in name_filters:
                            if entry not in found_names:
                                found.add((entry, role_path))
                            found_names.add(entry)
                        
                        break
        return found
    def _find_all_collection_roles(self, name_filters=None, collection_filter=None):