Hi,
I think the paradign should the same as in scripts.
a private variable, accessible only within a fsm
a public variable, accessible from outside fsm
a global variable, accessible form anywhere.
I even went further a long time ago and proposed to let a variable be accessible within it's hierarchy.
so if a gameObject with a fsm if it has childs with fsm, them fsm child would have access to private variables, or have another subdivision, private or protected variable.
But, doing all this really goes against a fast learning curve, so this would be difficult to implement without adding a extra thing to learn and confuse beginners.
And it's the same with events really, sometimes, It would really be cleaner to have public events, instead of just global events, that would help encapsulating things better.
Bye,
Jean