OK, so I have found how to add a text field to my part:
public int UpdateFrom3()
typeof(RightContentPart).Name, builder => builder
.WithField("ImATextField", f => f.OfType(typeof(TextField).Name)));
However, this adds ImATextField as a Content Field, which is equivalent to adding the field in the Dashboard.
The problem I have with that is that the ImATextField field is not part of the model of the part. Ie, it is not part of the part shape.
The problem with that is that I want to place the shape using @randompete 's ZoneProxy code. So as the ImATextField is not part of the Parts_MyPart shape, I can't place it, as its shape is a Fields_Common_Text shape. So if I place that, I will
be placing ALL the other Fields_Common_Text shapes, that I want to place elsewhere.
So, I really, really need my field to be part of my Part's shape.
To get that, I need it to be part of my model. To get that, I can't use a Content Field in my module's migrations.cs class, because it will have a generic shape name such as Fields_Common_Text that I have no control over.
Any pointers? Are the statements in the above paragraph correct?