I've been looking into behavior trees, but I cannot find a lot about them. The Wikipedia page pretty much only mentions sequence and selector nodes.
I have found implementations that also provide memory selector, memory sequence, and parallel sequence, as well as some decorators like inversion and repetition.
I found some papers that discuss some form of a "weighted" selector/sequence that queries its children for their utility/probability. This can also be used in machine learning to dynamically adjust those weights.
What I have not yet found much about is communication between nodes. Some implementations use a shared "blackboard" where nodes can write values, but this seems rather clumsy, as it creates a huge lookup table that tightly couples different nodes.
I've been thinking more in terms of sending messages to the next node. I think the bulk of the shared state is a condition/action providing a specific value to the next action (rather than just success).
Has there been any research in this area? I was not able to find anything. I'm also curious to hear about other useful extensions.