I don't have a good name for it, but I used the same pattern 20ish years ago for game engine stuff.
Java folks might have a name. It's similar to the Foo().bar().baz() constructor pattern.
Java folks might have a name. It's similar to the Foo().bar().baz() constructor pattern.
¹ Edit to add: well, it's a pattern I've seen a lot, anyway. I think it's preferable to mutating the final object in place because it "makes illegal states unrepresentable" as others in this discussion have mentioned.