Currently StateModel hackily handles swap_options by calling OptionTree.rename_attribute three times, once using a "placeholder" attribute that is recorded to the tree then ignored. This placeholder shouldn't exist and instead swap_options should call a new method OptionTree.swap_attributes. Same for SwapNamesUpdate.revert.
Currently
StateModelhackily handlesswap_optionsby callingOptionTree.rename_attributethree times, once using a "placeholder" attribute that is recorded to the tree then ignored. This placeholder shouldn't exist and insteadswap_optionsshould call a new methodOptionTree.swap_attributes. Same forSwapNamesUpdate.revert.