this is a pretty interesting concept, i am more curious how the binding will work, so you have a subset of event logic, (that is self contained) and has a special identifier that references the object that it is currently bound to (self)
so this self needs to act like an object type, so when you are adding an action to this self contained event sheet, will it be smart enough to know about the object that it is currently bound to? like if you have an 8direction behavior on a sprite, and then you bind this set of events to that object, when adding logic will the 8direction ACES show up in the context of self?
if thats the case then the 8direction behavior becomes a hard dependency on that set of logic, and you would not be able to reuse it unless the object you attach it to, has the 8direction behavior.
this also gets a bit hazy with specific object types? like a sprite and an array have different exposed ACES, so will self know about these? so this seems like it hinders the reuseability of this set of logic. and force the set of logic to be reused with a very specific object type that meets the criteria of having specific behaviors.
another interesting thing is, what if in your event logic you reference an outside object? like self colldies with B, now B has to be included in the project for this to work.
it would be really interesting if that could be parameterized, like the set of events could expose Object type properties so when you bind it to an object you have to reference the other used instances as a parameter.
this seems like a great concept, that could really help with event sheet maintainability and also help make thing resuable, but there seem to be alot of edge cases