@achow101 noted we don't reject them therefore they must be silently accepted. This is not part of the specs, we should remove them. Also cc @sipa.

I can take care of this.
{
private:
    miniscript::NodeRef<uint32_t> m_node;
protected:
    std::vector<CScript> MakeScripts(const std::vector<CPubKey>& keys, Span<const CScript> scripts,
                                     FlatSigningProvider& provider) const override
    {
        for (const auto& key : keys) provider.pubkeys.emplace(key.GetID(), key);
        return Vector(m_node->ToScript(ScriptMaker(keys)));
    }
public:
    MiniscriptDescriptor(std::vector<std::unique_ptr<PubkeyProvider>> providers, miniscript::NodeRef<uint32_t> node)
        : DescriptorImpl(std::move(providers), "?"), m_node(std::move(node)) {}
    bool ToStringHelper(const SigningProvider* arg, std::string& out, const StringType type,
                        const DescriptorCache* cache = nullptr) const override
    {
        if (const auto res = m_node->ToString(StringMaker(arg, m_pubkey_args, type == StringType::PRIVATE))) {
            out = *res;
            return true;
        }
        return false;
    }
    bool IsSolvable() const override { return true; }
    bool IsSingleType() const final { return true; }
    std::optional<int64_t> ScriptSize() const override { return m_node->ScriptSize(); }
    std::optional<int64_t> MaxSatSize(bool) const override {
        
        return m_node->GetWitnessSize();
    }
    std::optional<int64_t> MaxSatisfactionElems() const override {