MapValue: add a builder class