I am using C++.
My messages are not known at compile time, only during runtime. The input list can be a combination of any data type depending on how the user sets up the behavior tree.