public List<NodeType> getAllDescendants(NodeType node) {
        createNodeIfNotExists(node);

        List<NodeType> result = new ArrayList<>();
        Set<NodeType> visited = new HashSet<>();
        getAllDescendantsImpl(node, result, visited);
        return result;
    }
Gets a list of all direct or indirect inheritance ancestors.
The returned list is in a topological order, i.e. the older descendants
come earler in the list.
List includes the queried node (will be first)
integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/index/InheritanceGraph.java