On phone so a bit constrained ... Move away/from with Id is essentially introducing a namespace for temporary paths unrelated to the tree structure. Therefore you can change notation and keep only one move operation with three variants:
move(a,b): direct move of node to new path move(a,tmp(1)): move to temporary slot move(tmp(1),b): move from temporary slot N.b. this does not imply a single conflated move API on the code level, it merely describes the protocol. Making the edit driver assign temporary slots explicitly is better than forcing the receiver to second-guess the driver's intent, and also makes validating the drive easier.