docs: def build_master_ufos(
          self,
          glyphs_path,
          designspace_path=None,
          master_dir=None,
          instance_dir=None,
          family_name=None,
          mti_source=None,
      ):
          """Build UFOs and MutatorMath designspace from Glyphs source."""
          import glyphsLib
  
          if master_dir is None:
              master_dir = self._output_dir("ufo")
          if not os.path.isdir(master_dir):
              os.mkdir(master_dir)
          if instance_dir is None:
              instance_dir = self._output_dir("ufo", is_instance=True)
          if not os.path.isdir(instance_dir):
              os.mkdir(instance_dir)
  
          font = glyphsLib.GSFont(glyphs_path)
  
          if designspace_path is not None:
              designspace_dir = os.path.dirname(designspace_path)
          else:
              designspace_dir = master_dir
          # glyphsLib.to_designspace expects instance_dir to be relative
          instance_dir = os.path.relpath(instance_dir, designspace_dir)
  
          designspace = glyphsLib.to_designspace(
              font, family_name=family_name, instance_dir=instance_dir
          )
  
          masters = {}
          # multiple sources can have the same font/filename (but different layer),
          # we want to save a font only once
          for source in designspace.sources:
              if source.filename in masters:
                  assert source.font is masters[source.filename]
                  continue
              ufo_path = os.path.join(master_dir, source.filename)
              # no need to also set the relative 'filename' attribute as that
              # will be auto-updated on writing the designspace document
              source.path = ufo_path
              source.font.save(ufo_path)
              masters[source.filename] = source.font
  
          if designspace_path is None:
              designspace_path = os.path.join(master_dir, designspace.filename)
          designspace.write(designspace_path)
          if mti_source:
              self.add_mti_features_to_master_ufos(mti_source, masters.values())
          return designspace_path