docs: function obj2gltf(objPath, options) {
      const defaults = obj2gltf.defaults;
      options = defaultValue(options, {});
      options.binary = defaultValue(options.binary, defaults.binary);
      options.separate = defaultValue(options.separate, defaults.separate);
      options.separateTextures = defaultValue(options.separateTextures, defaults.separateTextures) || options.separate;
      options.checkTransparency = defaultValue(options.checkTransparency, defaults.checkTransparency);
      options.secure = defaultValue(options.secure, defaults.secure);
      options.packOcclusion = defaultValue(options.packOcclusion, defaults.packOcclusion);
      options.metallicRoughness = defaultValue(options.metallicRoughness, defaults.metallicRoughness);
      options.specularGlossiness = defaultValue(options.specularGlossiness, defaults.specularGlossiness);
      options.unlit = defaultValue(options.unlit, defaults.unlit);
      options.overridingTextures = defaultValue(options.overridingTextures, defaultValue.EMPTY_OBJECT);
      options.logger = defaultValue(options.logger, getDefaultLogger());
      options.writer = defaultValue(options.writer, getDefaultWriter(options.outputDirectory));
  
      if (!defined(objPath)) {
          throw new DeveloperError('objPath is required');
      }
  
      if (options.separateTextures && !defined(options.writer)) {
          throw new DeveloperError('Either options.writer or options.outputDirectory must be defined when writing separate resources.');
      }
  
      if (options.metallicRoughness + options.specularGlossiness + options.unlit > 1) {
          throw new DeveloperError('Only one material type may be set from [metallicRoughness, specularGlossiness, unlit].');
      }
  
      if (defined(options.overridingTextures.metallicRoughnessOcclusionTexture) && defined(options.overridingTextures.specularGlossinessTexture)) {
          throw new DeveloperError('metallicRoughnessOcclusionTexture and specularGlossinessTexture cannot both be defined.');
      }
  
      if (defined(options.overridingTextures.metallicRoughnessOcclusionTexture)) {
          options.metallicRoughness = true;
          options.specularGlossiness = false;
          options.packOcclusion = true;
      }
  
      if (defined(options.overridingTextures.specularGlossinessTexture)) {
          options.metallicRoughness = false;
          options.specularGlossiness = true;
      }
  
      return loadObj(objPath, options)
          .then(function(objData) {
              return createGltf(objData, options);
          })
          .then(function(gltf) {
              return writeGltf(gltf, options);
          });
  }