static KeyBindingData validateKeyBindingData(KeyBindingData newKeyBindingData) {
		if (newKeyBindingData == null) {
			return null;
		}

		KeyStroke keyBinding = newKeyBindingData.getKeyBinding();
		if (keyBinding == null) {
			// not sure when this can happen
			return newKeyBindingData;
		}

		KeyBindingPrecedence precedence = newKeyBindingData.getKeyBindingPrecedence();
		if (precedence == KeyBindingPrecedence.SystemActionsLevel) {
			KeyBindingData kbd =
				createSystemKeyBindingData(KeyBindingUtils.validateKeyStroke(keyBinding));
			kbd.mouseBinding = newKeyBindingData.mouseBinding;
			return kbd;
		}

		KeyBindingData kbd =
			new KeyBindingData(KeyBindingUtils.validateKeyStroke(keyBinding), precedence);
		kbd.mouseBinding = newKeyBindingData.mouseBinding;
		return kbd;
	}
Updates the given data with system-independent versions of key modifiers.  For example,
the <code>control</code> key will be converted to the <code>command</code> key on the Mac.
@param newKeyBindingData the data to validate
@return the potentially changed data
Ghidra/Framework/Docking/src/main/java/docking/action/KeyBindingData.java