I wasn't sure if you'd be happy about treating a builder as reusable. I've encountered APIs (some earlier versions of protos) where builders were single-use. If it's ok to call build() several times (the implementation is) it gets neater.