If you don't accept WITH...ENDWITH nesting, then that's it. But the more important lack of VFP is about static classes, you can't define a construct like a builder existing statically.
You don't need that concept because VFP does not offer multiple constructors with different parameterization, you may define an Init with parameters having different meaning depending on the count and type, as you can't strictly type parameters anyway, so you can pass 1,2 and "one","two" to an Init event anyway and make the meaning of the parameters depend on count and type you detect via Pcount() and Vartype() and thus have "multiple" constructors. It surely has limits in comparison with real override.
You can take the main idea of this and define an init having one object parameter, which accepts objects with individual sets of properties, the closest to that I did here:
On the aspect of the builder to create an object which finally is passed to User constructor that enables you to define any properties with types and values you need. You may extend this to be part of a class or helper (builder) class to create such parameter objects to then pass into the main class Init. One property of such a parameter object might define what constructor variant to do with itself as some meta data. Defining an infrastructure for such ways could make VFP classes more flexible, too. Though you also lose a consistency and coherence, if all your Inits are just having a builder object input parameter.
That may still not get you what you want, then explain in more detail how and why you would like to use that pattern for which goal.
Last, not least I often enough tell the days of VFP are over and other languages offer much more than VFP ever will. If you need VFP for some reason, you can't expect to impose your programming style upon it, you have to learn a way of limited OOP VFP supports. It surely is much more than Access with its class modules, but less than Java or C#. But it also makes it easier to comprehend and dive into fully to the extent it works. So far, you can get your user object with whatever fields or (let's keep it at VFP terminology) properties as you like, the base custom class and almost any class also offer AddProperty to add new properties at runtime, you also can add properties via AddProperty(object,"PropertyName", value) function, which you already have seen, when you read the linked thread with my CreateParameterObject function definition.
Bye, Olaf.