pub trait BehaviorNode {
// Required method
fn tick(
&mut self,
arg: BehaviorCallback<'_>,
ctx: &mut Context,
) -> BehaviorResult;
// Provided methods
fn provided_ports(&self) -> Vec<PortSpec> { ... }
fn max_children(&self) -> NumChildren { ... }
}