Something which has increasingly been bothering me about the design of OctoberProject is that I think it would make more sense if I inverted the design the system currently uses.
Currently, a mutation is delivered to a block and then the logic within the mutation checks how/if to mutate the state of the block based on the block type and other details of the block or surrounding state.
I suspect that it might make a little more sense if the logic were registered per block type for specific events. This way, changing logic state wouldn't check if the block type has a logic aspect but there would be registrations for block type for "on block state change", or something.
I will consider this, but I suspect it will only make sense once the behaviour of the system is quite mature. I am also not sure that this would help or just be "different".
Things to think about,
Jeff.