static __registerTransformGroup(transformGroup, target) {
    const { name, transforms } = transformGroup;
    if (typeof name !== 'string') throw new Error('transform name must be a string');
    if (!Array.isArray(transforms))
      throw new Error('transforms must be an array of registered value transforms');

    transforms.forEach((t) => {
      if (!target.hooks.transforms || !(t in target.hooks.transforms))
        throw new Error('transforms must be an array of registered value transforms');
    });
    this.deleteExistingHook(target, 'transformGroups', name);

    // make sure to trigger the setter
    target.hooks = deepmerge(target.hooks, {
      transformGroups: {
        [name]: transforms,
      },
    });
    return target;
  }
@param {{ name: string; transforms: string[]; }} transformGroup
@param {typeof Register | Register} target