Following the merge of https://github.com/bitcoin/bitcoin/pull/23083, we'll throw a non-fatal error at runtime if the documentation for an RPC is incorrect. This behaviour has found numerous issues over a very short period (of the PR being opened). However, this is not something that we want in production / release builds, instead, we want the ability to have it enabled in the CI and when running tests. A runtime option could be added, which controls this behaviour (disabled by default).

#### Useful skills:

- C++
- Understanding of Bitcoin Core's initialization sequence
- Understanding of Bitcoin Core's RPC interface

#### Want to work on this issue?

For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request.

{
    size_t num_required_args = 0;
    for (size_t n = m_args.size(); n > 0; --n) {
        if (!m_args.at(n - 1).IsOptional()) {
            num_required_args = n;
            break;
        }
    }
    return num_required_args <= num_args && num_args <= m_args.size();
}
std::vector<std::string> RPCHelpMan::GetArgNames() const
{
    std::vector<std::string> ret;
    for (const auto& arg : m_args) {
        ret.emplace_back(arg.m_names);
    }
    return ret;
}
std::string RPCHelpMan::ToString() const