Don't iterate with the whole Builder, only that parts that change.
Select max length of varint based on the return type.