Alex, Dave, thanx for the insight.
So typically a BT system would only deal (encode logic) for 1 target/threat at a time.
Where an external to BT system would be picking what that 1 threat/target is.
Something like a cover picking system can consider more than 1 threat, when picking a cover position, but only communicate its top choice to the blackboard where the BT would look it up. Or possibly more than 1 cover point can be chosen, where the other cover choices (valid but maybe not optimal) could be weighted lower, for a weighted random selector to pick between them.
This prioritizing choice could be done in a number of ways, one being using marginal utility (constructed by some multiple consideration formula adjusted by possibly some graph primitive, like a Logit function, etc.)
I guess this could be done in what I am calling the perception filter, that is feed by the perception system then generates derived perceptions and writes them into the agent blackboard.
So we would typically want to keep that logic out of the BT, and let the BT worry about other things.
Am I understanding that right?
Are there situations where some of that threat/etc prioritization might need to exist in the BT, in some fashion. I am thinking about flanking sub behaviors that need to understand the geometry of the battle and therefore its participants and what they are doing?