     }

    } else {
      LOGGER.warn(`Unknown type ${obj.type} for Option ${getKeyPath(keys)}. Using the entire object instead...`);
      return obj;
    }
  }

  return obj;
}


/// 
function getSetting(keys, defaultVal) {
  if (typeof JPMNOpts === "undefined") {
    return parseSetting(defaultVal, keys);
  }

  let keyList = ["settings"].concat(keys);

  let obj = JPMNOpts;
  for (let key of keyList) {
    if (!(key in obj)) {

      // checks if we need to warn, manual search
      if ("settings" in J