Swap single node:
Collect swappable nodes and for each, swap targets. Swap a random one then recompute tx’s on one limb; if list is empty then fail.
A node can be swapped out if one of its neighbor (either side is fine) ProtoModule has ProtoLink(s) to ProtoModule(s) (swap targets) that have at least one ProtoLink to the other neighbor ProtoModule.
Related do-first: #3, #5
Swap single node: Collect swappable nodes and for each, swap targets. Swap a random one then recompute tx’s on one limb; if list is empty then fail.
A node can be swapped out if one of its neighbor (either side is fine) ProtoModule has ProtoLink(s) to ProtoModule(s) (swap targets) that have at least one ProtoLink to the other neighbor ProtoModule.