docs: def load(self, service_name, api_version=None, cached=True):
          """
          Loads the desired JSON for a service. (uncached)
  
          This will fall back through all the ``data_dirs`` provided to the
          constructor, returning the **first** one it finds.
  
          :param service_name: The name of the desired service
          :type service_name: string
  
          :param api_version: (Optional) The desired API version to load
          :type service_name: string
  
          :param cached: (Optional) Whether or not the cache should be used
              when attempting to load the data. Default is ``True``.
          :type cached: boolean
  
          :returns: The loaded JSON as a dict
          """
          # Fetch from the cache first if it's there.
          if cached:
              if service_name in self._loaded_data:
                  if api_version in self._loaded_data[service_name]:
                      return self._loaded_data[service_name][api_version]
  
          data = {}
          options = self.get_available_options(service_name)
          match, version = self.get_best_match(
              options,
              service_name,
              api_version=api_version
          )
  
          with open(match, 'r') as json_file:
              data = json.load(json_file)
              # Embed where we found it from for debugging purposes.
              data['__file__'] = match
              data['api_version'] = version
  
          if cached:
              self._loaded_data.setdefault(service_name, {})
              self._loaded_data[service_name][api_version] = data
  
          return data