code: def process(self, useProductionNames=None, optimizeCFF=True):
          
          if useProductionNames is None:
              useProductionNames = self.ufo.lib.get(
                  USE_PRODUCTION_NAMES,
                  not self.ufo.lib.get(GLYPHS_DONT_USE_PRODUCTION_NAMES)
                  and self._postscriptNames is not None
              )
          if useProductionNames:
              self._rename_glyphs_from_ufo()
          if optimizeCFF and 'CFF ' in self.otf:
              from compreffor import compress
  
              logger.info("Subroutinizing CFF table")
              compress(self.otf)
          if 'OS/2' in self.otf:
              self.otf['OS/2'].usMaxContext = maxCtxFont(self.otf)
          return self.otf
docs: useProductionNames:
            By default, when value is None, this will rename glyphs using the
            'public.postscriptNames' in then UFO lib. If the mapping is not
            present, no glyph names are renamed.
            If the value is False, no glyphs are renamed whether or not the
            'public.postscriptNames' mapping is present.
            If the value is True, but no 'public.postscriptNames' are present,
            then uniXXXX names are generated from the glyphs' unicode.
  
            The 'com.github.googlei18n.ufo2ft.useProductionNames' key can be set
            in the UFO lib to control this parameter (plist boolean value).
  
            For legacy reasons, an alias key (with an inverted meaning) is also
            supported: "com.schriftgestaltung.Don't use Production Names";
            when this is present if the UFO lib and is set to True, this is
            equivalent to 'useProductionNames' set to False.
  
          optimizeCFF:
            Run compreffor to subroubtinize CFF table, if present.