static std::vector<node_type*> execute(_Ty& entity, bool descending) { std::vector<node_type*> result; for(node_type* node = entity.parent(); node; node = node->parent()) { result.emplace_back(node); } if(descending) std::reverse(result.begin(), result.end()); return std::move(result); }