code: function getDropEffect(event, data) {
  		var dndOpts = data.options.dnd5,
  			res = dndOpts.dropEffectDefault;
  		// dataTransfer = event.dataTransfer || event.originalEvent.dataTransfer,
  
  		// Use callback if any:
  		if (dndOpts.dropEffect) {
  			return dndOpts.dropEffect(event, data);
  		}
  
  		if (isMac) {
  			if (event.metaKey && event.altKey) {
  				// Mac: [Control] + [Option]
  				return "link";
  			} else if (event.metaKey) {
  				// Mac: [Command]
  				return "move";
  			} else if (event.altKey) {
  				// Mac: [Option]
  				return "copy";
  			}
  		} else {
  			if (event.ctrlKey) {
  				// Windows: [Ctrl]
  				return "copy";
  			} else if (event.shiftKey) {
  				// Windows: [Shift]
  				return "move";
  			} else if (event.altKey) {
  				// Windows: [Alt]
  				return "link";
  			}
  		}
  		// data.tree.debug("getDropEffect: " + res);
  		return res;
  	}
docs: /* Guess dropEffect from modifier keys.
  Safari:
  It seems that `dataTransfer.dropEffect` can only be set on dragStart, and will remain
  even if the cursor changes when [Alt] or [Ctrl] are pressed (?)
  Using rules suggested here:
  https://ux.stackexchange.com/a/83769
  @returns
  'copy', 'link', 'move', or 'none'