SetOptions(data) {
    for (const key in data) setOption(key, data[key], true);
    callHooks(); // exceptions will be sent to the caller
  }
@param {{ [key:string]: PlainJSONValue }} data
@return {void}
@throws {?} hooks can throw after the option was set