%% record definitions for nodes -record(decorator, { name :: string(), module :: atom(), args :: map(), state :: term(), child :: term() }). -record(sequence, { name :: string(), namespace :: namespace(), children :: list(term()) }). %% TODO: add selector -record(selector, { namespace :: namespace(), children :: list(term()) }). -record(task, { name :: string(), module :: atom(), args :: map(), state :: term() }). -type namespace() :: list(string()). -type decorator() :: #decorator{}. -type sequence() :: #sequence{}. -type selector() :: #selector{}. -type task() :: #task{}. -type blackboard() :: map(). -type event() :: term(). -type status() :: success | failure | running.