The importmulti help text reads, in part: 

```
{                                                          (json object) If a ranged descriptor is used, this specifies the start and end of the range to import
           "start": n,                                              (numeric, optional, default=0) Start of the range to import
           "end": n,                                                (numeric, required) End of the range to import (inclusive)
},
```

This is a value for which a key is missing; it should be "range": { ...
: m_left{left}, m_right{right} {}
    const std::string m_left;
    const std::string m_right;
};
/**
 * Keeps track of RPCArgs by transforming them into sections for the purpose
 * of serializing everything to a single string
 */
struct Sections {
    std::vector<Section> m_sections;
    size_t m_max_pad{0};
    void PushSection(const Section& s)
    {
        m_max_pad = std::max(m_max_pad, s.m_left.size());
        m_sections.push_back(s);
    }
    /**
     * Serializing RPCArgs depends on the outer type. Only arrays and
     * dictionaries can be nested in json. The top-level outer type is "named
     * arguments", a mix between a dictionary and arrays.
     */
    enum class OuterType {
        ARR,
        OBJ,
        NAMED_ARG, 
    };
    /**
     * Recursive helper to translate an RPCArg into sections
     */
    void Push(const RPCArg& arg, const size_t current_indent = 5, const OuterType outer_type = OuterType::NAMED_ARG)