# class utils::Dictionary::Node

    class Node {
    public:
        // construction

        Node();
        Node(Node* parent);

        // methods

        void ClearAll();
        const Node* Find(const char* key) const;
        Node* Find(const char* key);
        Node* CreateOrFind(const char* key);
        const std::string& GetWord() const;
        void SetWord(const std::string& val);
        bool ClearWord();
        void CumulateWords(std::vector<std::string>& result) const;
        bool HasAnyChildren() const;
        void DestroyChild(Node* child);
        void CumulateWords(const char* key_prefix, std::vector<std::string>& result) const;
    };