The current doxygen documentation for descriptors looks messy, because the source is not in the right format. See e.g. https://dev.visucore.com/bitcoin/doxygen/struct_descriptor.html#a25c23845f9f3178c5de4aa404222ff51

It shouldn't be too hard to properly reformat the docs, so that they are correctly displayed.
#ifndef BITCOIN_SCRIPT_DESCRIPTOR_H
#define BITCOIN_SCRIPT_DESCRIPTOR_H
#include <script/script.h>
#include <script/sign.h>
#include <script/signingprovider.h>
#include <vector>
struct Descriptor {
    virtual ~Descriptor() = default;
    
    virtual bool IsRange() const = 0;
    /** Whether this descriptor has all information about signing ignoring lack of private keys.
     *  This is true for all descriptors except ones that use `raw` or `addr` constructions. */
    virtual bool IsSolvable() const = 0;
    
    virtual std::string ToString() const = 0;