As the title says, my suggestion is to add a global (?) option to opt out from serialization of Graph Source’s translation and zoom properties.
The reason for this is that I often find myself just peeking inside of an FSM just to remind myself how certain parts work, and this action causes the asset, or the graph instance to get dirty and show up as modified in source control.
With text serialization this is slightly less annoying (but still distracting), although a large project I’m working on has the binary serialization enabled, and switching it to text is not an option. With binary serialization it’s impossible to tell if anything meaningful has really changed in the graph, or was it just the viewport data that changed.
My current approach is to just remove the serialization attributes from these properties, but I think it might be worth considering to make this an official feature. 🙂
Not serializing translation and zoom factor has been suggested a couple of times in the past 🙂
The reason they are serialized in the first place is only because of those two reasons which I find somewhat important:
1) The graph always opens up in the editor at where it was left at.
2) Undo/Redo also undo/redo the graph translation which I believe gives some clarity as to what was just undoed.
With that said however, I also understand the important reasons for not serializing them. I will see to adding a global option like you suggest 🙂