@Override
	public CompletableFuture<Void> writeVariableAsync(TracePlatform platform, TraceThread thread,
			int frame, Address address, byte[] data) {
		if (address.isMemoryAddress()) {
			return writeMemoryAsync(address, data);
		}
		if (address.isRegisterAddress()) {
			return writeRegisterAsync(platform, thread, frame, address, data);
		}
		Msg.error(this, "Address is neither memory nor register: " + address);
		return AsyncUtils.nil();
	}
When checking for register validity, we consider it valid if it or any of its parents are
valid, or any alias thereof.
Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/service/tracermi/TraceRmiTarget.java