docs: def validate(metadata):
          """Validator of the metadata composition
  
          :param metadata: conforming to the Metadata accepted by Ocean Protocol, dict
          :return: bool
          """
          # validate required sections and their sub items
          for section_key in Metadata.REQUIRED_SECTIONS:
              if section_key not in metadata or not metadata[section_key] or not isinstance(
                      metadata[section_key], dict):
                  return False
  
              section = Metadata.MAIN_SECTIONS[section_key]
              section_metadata = metadata[section_key]
              for subkey in section.REQUIRED_VALUES_KEYS:
                  if subkey not in section_metadata or section_metadata[subkey] is None:
                      return False
  
          return True