fn traverse_node( node: Node<'_>, source: &str, facts: &mut Vec<RawNode>, parent_idx: Option<usize>, ) -> Option<usize>