I enjoy making custom rotations to learn more about the different specializations and optimize them to be the very best they can in various situations. Often times I re-use logic across multiple actions that could be simplified into a simple function.
An example: As an Assassination Rogue, I want to apply various DoTs if they are refreshable, but allow early casting if it will be more powerful or force late casting on the last tick if it will be less powerful. This logic is relatively constant, but the name and expected power of the skill varies by action – two things that I can easily pass as parameters. I have substantially reduced the complexity of the logic on many actions by combining long strings of boolean logic into functions, but it has required me to clone a custom version of the game to do so.
I’d really like to be able to create functions that can be attached to the rotation instead of the game version, so that I don’t need to keep up with re-creating them for every new version of the game. Additionally, if they were attached to the rotation I could share that rotation with friends without needing to give them a copy of my custom game version too. The process of going back and forth would be significantly easier – since really the function logic is about the rotation, not the game mechanics.