code: def to_designspace(
      font,
      family_name=None,
      instance_dir=None,
      propagate_anchors=True,
      ufo_module=defcon,
      minimize_glyphs_diffs=False,
      generate_GDEF=True,
      store_editor_state=True,
  ):
      
      builder = UFOBuilder(
          font,
          ufo_module=ufo_module,
          family_name=family_name,
          instance_dir=instance_dir,
          propagate_anchors=propagate_anchors,
          use_designspace=True,
          minimize_glyphs_diffs=minimize_glyphs_diffs,
          generate_GDEF=generate_GDEF,
          store_editor_state=store_editor_state,
      )
      return builder.designspace
docs: Take a GSFont object and convert it into a Designspace Document + UFOS.
      The UFOs are available as the attribute `font` of each SourceDescriptor of
      the DesignspaceDocument:
  
          ufos = [source.font for source in designspace.sources]
  
      The designspace and the UFOs are not written anywhere by default, they
      are all in-memory. If you want to write them to the disk, consider using
      the `filename` attribute of the DesignspaceDocument and of its
      SourceDescriptor as possible file names.
  
      Takes in data as Glyphs.app-compatible classes, as documented at
      https://docu.glyphsapp.com/
  
      If include_instances is True, also returns the parsed instance data.
  
      If family_name is provided, the master UFOs will be given this name and
      only instances with this name will be returned.
  
      If generate_GDEF is True, write a `table GDEF {...}` statement in the
      UFO's features.fea, containing GlyphClassDef and LigatureCaretByPos.