Merge "v23: Allocate all Target dependencies at once"
diff --git a/discovery/discovery.vdl.go b/discovery/discovery.vdl.go
index 61e9b68..8d63843 100644
--- a/discovery/discovery.vdl.go
+++ b/discovery/discovery.vdl.go
@@ -150,7 +150,12 @@
 }
 
 type AdvertisementTarget struct {
-	Value *Advertisement
+	Value               *Advertisement
+	idTarget            AdIdTarget
+	interfaceNameTarget vdl.StringTarget
+	addressesTarget     vdl.StringSliceTarget
+	attributesTarget    AttributesTarget
+	attachmentsTarget   AttachmentsTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -164,20 +169,25 @@
 func (t *AdvertisementTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Id":
-		val, err := &AdIdTarget{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "InterfaceName":
-		val, err := &vdl.StringTarget{Value: &t.Value.InterfaceName}, error(nil)
-		return nil, val, err
+		t.interfaceNameTarget.Value = &t.Value.InterfaceName
+		target, err := &t.interfaceNameTarget, error(nil)
+		return nil, target, err
 	case "Addresses":
-		val, err := &vdl.StringSliceTarget{Value: &t.Value.Addresses}, error(nil)
-		return nil, val, err
+		t.addressesTarget.Value = &t.Value.Addresses
+		target, err := &t.addressesTarget, error(nil)
+		return nil, target, err
 	case "Attributes":
-		val, err := &AttributesTarget{Value: &t.Value.Attributes}, error(nil)
-		return nil, val, err
+		t.attributesTarget.Value = &t.Value.Attributes
+		target, err := &t.attributesTarget, error(nil)
+		return nil, target, err
 	case "Attachments":
-		val, err := &AttachmentsTarget{Value: &t.Value.Attachments}, error(nil)
-		return nil, val, err
+		t.attachmentsTarget.Value = &t.Value.Attachments
+		target, err := &t.attachmentsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_discovery_Advertisement)
 	}
@@ -205,9 +215,11 @@
 }
 
 type AttributesTarget struct {
-	Value    *Attributes
-	currKey  string
-	currElem string
+	Value      *Attributes
+	currKey    string
+	currElem   string
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -221,11 +233,15 @@
 }
 func (t *AttributesTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *AttributesTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *AttributesTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -240,9 +256,11 @@
 }
 
 type AttachmentsTarget struct {
-	Value    *Attachments
-	currKey  string
-	currElem []byte
+	Value      *Attachments
+	currKey    string
+	currElem   []byte
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.BytesTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -256,11 +274,15 @@
 }
 func (t *AttachmentsTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *AttachmentsTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = []byte(nil)
-	return &vdl.BytesTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *AttachmentsTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
diff --git a/naming/naming.vdl.go b/naming/naming.vdl.go
index c968dbf..8b3c6d7 100644
--- a/naming/naming.vdl.go
+++ b/naming/naming.vdl.go
@@ -137,7 +137,9 @@
 }
 
 type MountedServerTarget struct {
-	Value *MountedServer
+	Value          *MountedServer
+	serverTarget   vdl.StringTarget
+	deadlineTarget time.WireDeadlineTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -151,11 +153,13 @@
 func (t *MountedServerTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Server":
-		val, err := &vdl.StringTarget{Value: &t.Value.Server}, error(nil)
-		return nil, val, err
+		t.serverTarget.Value = &t.Value.Server
+		target, err := &t.serverTarget, error(nil)
+		return nil, target, err
 	case "Deadline":
-		val, err := &time.WireDeadlineTarget{Value: &t.Value.Deadline}, error(nil)
-		return nil, val, err
+		t.deadlineTarget.Value = &t.Value.Deadline
+		target, err := &t.deadlineTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_naming_MountedServer)
 	}
@@ -269,7 +273,11 @@
 }
 
 type MountEntryTarget struct {
-	Value *MountEntry
+	Value                  *MountEntry
+	nameTarget             vdl.StringTarget
+	serversTarget          unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7dTarget
+	servesMountTableTarget vdl.BoolTarget
+	isLeafTarget           vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -283,17 +291,21 @@
 func (t *MountEntryTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Servers":
-		val, err := &unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7d_Target{Value: &t.Value.Servers}, error(nil)
-		return nil, val, err
+		t.serversTarget.Value = &t.Value.Servers
+		target, err := &t.serversTarget, error(nil)
+		return nil, target, err
 	case "ServesMountTable":
-		val, err := &vdl.BoolTarget{Value: &t.Value.ServesMountTable}, error(nil)
-		return nil, val, err
+		t.servesMountTableTarget.Value = &t.Value.ServesMountTable
+		target, err := &t.servesMountTableTarget, error(nil)
+		return nil, target, err
 	case "IsLeaf":
-		val, err := &vdl.BoolTarget{Value: &t.Value.IsLeaf}, error(nil)
-		return nil, val, err
+		t.isLeafTarget.Value = &t.Value.IsLeaf
+		target, err := &t.isLeafTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_naming_MountEntry)
 	}
@@ -306,13 +318,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7d_Target struct {
-	Value *[]MountedServer
+// []MountedServer
+type unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7dTarget struct {
+	Value      *[]MountedServer
+	elemTarget MountedServerTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType2) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType2)
 	}
@@ -323,13 +337,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &MountedServerTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f6e616d696e672e4d6f756e746564536572766572207374727563747b53657276657220737472696e673b446561646c696e652074696d652e57697265446561646c696e65207374727563747b46726f6d4e6f772074696d652e4475726174696f6e207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4e6f446561646c696e6520626f6f6c7d7dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -404,7 +420,9 @@
 }
 
 type GlobErrorTarget struct {
-	Value *GlobError
+	Value       *GlobError
+	nameTarget  vdl.StringTarget
+	errorTarget verror.ErrorTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -418,11 +436,13 @@
 func (t *GlobErrorTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Error":
-		val, err := &verror.ErrorTarget{Value: &t.Value.Error}, error(nil)
-		return nil, val, err
+		t.errorTarget.Value = &t.Value.Error
+		target, err := &t.errorTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_naming_GlobError)
 	}
diff --git a/query/engine/internal/testdata/testdata.vdl.go b/query/engine/internal/testdata/testdata.vdl.go
index 6174543..a039802 100644
--- a/query/engine/internal/testdata/testdata.vdl.go
+++ b/query/engine/internal/testdata/testdata.vdl.go
@@ -95,7 +95,11 @@
 }
 
 type AddressInfoTarget struct {
-	Value *AddressInfo
+	Value        *AddressInfo
+	streetTarget vdl.StringTarget
+	cityTarget   vdl.StringTarget
+	stateTarget  vdl.StringTarget
+	zipTarget    vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -109,17 +113,21 @@
 func (t *AddressInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Street":
-		val, err := &vdl.StringTarget{Value: &t.Value.Street}, error(nil)
-		return nil, val, err
+		t.streetTarget.Value = &t.Value.Street
+		target, err := &t.streetTarget, error(nil)
+		return nil, target, err
 	case "City":
-		val, err := &vdl.StringTarget{Value: &t.Value.City}, error(nil)
-		return nil, val, err
+		t.cityTarget.Value = &t.Value.City
+		target, err := &t.cityTarget, error(nil)
+		return nil, target, err
 	case "State":
-		val, err := &vdl.StringTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Zip":
-		val, err := &vdl.StringTarget{Value: &t.Value.Zip}, error(nil)
-		return nil, val, err
+		t.zipTarget.Value = &t.Value.Zip
+		target, err := &t.zipTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_AddressInfo)
 	}
@@ -332,8 +340,10 @@
 	return &RatingsArrayTarget{Value: m}
 }
 
+// RatingsArray
 type RatingsArrayTarget struct {
-	Value *RatingsArray
+	Value      *RatingsArray
+	elemTarget vdl.Int16Target
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -345,7 +355,9 @@
 	return t, nil
 }
 func (t *RatingsArrayTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.Int16Target{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *RatingsArrayTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -410,7 +422,9 @@
 }
 
 type EquifaxCreditReportTarget struct {
-	Value *EquifaxCreditReport
+	Value                  *EquifaxCreditReport
+	ratingTarget           vdl.ByteTarget
+	fourScoreRatingsTarget RatingsArrayTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -424,11 +438,13 @@
 func (t *EquifaxCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &vdl.ByteTarget{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	case "FourScoreRatings":
-		val, err := &RatingsArrayTarget{Value: &t.Value.FourScoreRatings}, error(nil)
-		return nil, val, err
+		t.fourScoreRatingsTarget.Value = &t.Value.FourScoreRatings
+		target, err := &t.fourScoreRatingsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_EquifaxCreditReport)
 	}
@@ -615,7 +631,10 @@
 }
 
 type ExperianCreditReportTarget struct {
-	Value *ExperianCreditReport
+	Value              *ExperianCreditReport
+	ratingTarget       ExperianRatingTarget
+	tdhApprovalsTarget unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5dTarget
+	auditorTarget      TdhTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -629,14 +648,17 @@
 func (t *ExperianCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &ExperianRatingTarget{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	case "TdhApprovals":
-		val, err := &unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5d_Target{Value: &t.Value.TdhApprovals}, error(nil)
-		return nil, val, err
+		t.tdhApprovalsTarget.Value = &t.Value.TdhApprovals
+		target, err := &t.tdhApprovalsTarget, error(nil)
+		return nil, target, err
 	case "Auditor":
-		val, err := &TdhTarget{Value: &t.Value.Auditor}, error(nil)
-		return nil, val, err
+		t.auditorTarget.Value = &t.Value.Auditor
+		target, err := &t.auditorTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_ExperianCreditReport)
 	}
@@ -649,29 +671,33 @@
 	return nil
 }
 
-type unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5d_Target struct {
-	Value   *map[Tdh]struct{}
-	currKey Tdh
+// map[Tdh]struct{}
+type unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5dTarget struct {
+	Value     *map[Tdh]struct{}
+	currKey   Tdh
+	keyTarget TdhTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType3) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType3)
 	}
 	*t.Value = make(map[Tdh]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = TdhTom
-	return &TdhTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e54646820656e756d7b546f6d3b4469636b3b48617272797d5dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -757,7 +783,9 @@
 }
 
 type TransUnionCreditReportTarget struct {
-	Value *TransUnionCreditReport
+	Value                 *TransUnionCreditReport
+	ratingTarget          vdl.Int16Target
+	previousRatingsTarget unnamed_6d61705b737472696e675d696e743136Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -771,11 +799,13 @@
 func (t *TransUnionCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &vdl.Int16Target{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	case "PreviousRatings":
-		val, err := &unnamed_6d61705b737472696e675d696e743136_Target{Value: &t.Value.PreviousRatings}, error(nil)
-		return nil, val, err
+		t.previousRatingsTarget.Value = &t.Value.PreviousRatings
+		target, err := &t.previousRatingsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_TransUnionCreditReport)
 	}
@@ -788,34 +818,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d696e743136_Target struct {
-	Value    *map[string]int16
-	currKey  string
-	currElem int16
+// map[string]int16
+type unnamed_6d61705b737472696e675d696e743136Target struct {
+	Value      *map[string]int16
+	currKey    string
+	currElem   int16
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.Int16Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d696e743136_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d696e743136Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType5) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType5)
 	}
 	*t.Value = make(map[string]int16)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d696e743136_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d696e743136Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d696e743136_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d696e743136Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = int16(0)
-	return &vdl.Int16Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d696e743136_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d696e743136Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d696e743136_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d696e743136Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -1010,7 +1047,9 @@
 }
 
 type CreditReportTarget struct {
-	Value *CreditReport
+	Value        *CreditReport
+	agencyTarget CreditAgencyTarget
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1024,11 +1063,12 @@
 func (t *CreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Agency":
-		val, err := &CreditAgencyTarget{Value: &t.Value.Agency}, error(nil)
-		return nil, val, err
+		t.agencyTarget.Value = &t.Value.Agency
+		target, err := &t.agencyTarget, error(nil)
+		return nil, target, err
 	case "Report":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Report))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Report))
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_CreditReport)
 	}
@@ -1167,7 +1207,13 @@
 }
 
 type CustomerTarget struct {
-	Value *Customer
+	Value                   *Customer
+	nameTarget              vdl.StringTarget
+	idTarget                vdl.Int64Target
+	activeTarget            vdl.BoolTarget
+	addressTarget           AddressInfoTarget
+	previousAddressesTarget unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677dTarget
+	creditTarget            CreditReportTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1181,23 +1227,29 @@
 func (t *CustomerTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Id":
-		val, err := &vdl.Int64Target{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "Active":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Active}, error(nil)
-		return nil, val, err
+		t.activeTarget.Value = &t.Value.Active
+		target, err := &t.activeTarget, error(nil)
+		return nil, target, err
 	case "Address":
-		val, err := &AddressInfoTarget{Value: &t.Value.Address}, error(nil)
-		return nil, val, err
+		t.addressTarget.Value = &t.Value.Address
+		target, err := &t.addressTarget, error(nil)
+		return nil, target, err
 	case "PreviousAddresses":
-		val, err := &unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677d_Target{Value: &t.Value.PreviousAddresses}, error(nil)
-		return nil, val, err
+		t.previousAddressesTarget.Value = &t.Value.PreviousAddresses
+		target, err := &t.previousAddressesTarget, error(nil)
+		return nil, target, err
 	case "Credit":
-		val, err := &CreditReportTarget{Value: &t.Value.Credit}, error(nil)
-		return nil, val, err
+		t.creditTarget.Value = &t.Value.Credit
+		target, err := &t.creditTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_Customer)
 	}
@@ -1210,13 +1262,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677d_Target struct {
-	Value *[]AddressInfo
+// []AddressInfo
+type unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677dTarget struct {
+	Value      *[]AddressInfo
+	elemTarget AddressInfoTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType8) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType8)
 	}
@@ -1227,13 +1281,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &AddressInfoTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e41646472657373496e666f207374727563747b53747265657420737472696e673b4369747920737472696e673b537461746520737472696e673b5a697020737472696e677dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -1336,7 +1392,12 @@
 }
 
 type InvoiceTarget struct {
-	Value *Invoice
+	Value             *Invoice
+	custIdTarget      vdl.Int64Target
+	invoiceNumTarget  vdl.Int64Target
+	invoiceDateTarget time_2.TimeTarget
+	amountTarget      vdl.Int64Target
+	shipToTarget      AddressInfoTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1350,20 +1411,25 @@
 func (t *InvoiceTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "CustId":
-		val, err := &vdl.Int64Target{Value: &t.Value.CustId}, error(nil)
-		return nil, val, err
+		t.custIdTarget.Value = &t.Value.CustId
+		target, err := &t.custIdTarget, error(nil)
+		return nil, target, err
 	case "InvoiceNum":
-		val, err := &vdl.Int64Target{Value: &t.Value.InvoiceNum}, error(nil)
-		return nil, val, err
+		t.invoiceNumTarget.Value = &t.Value.InvoiceNum
+		target, err := &t.invoiceNumTarget, error(nil)
+		return nil, target, err
 	case "InvoiceDate":
-		val, err := &time_2.TimeTarget{Value: &t.Value.InvoiceDate}, error(nil)
-		return nil, val, err
+		t.invoiceDateTarget.Value = &t.Value.InvoiceDate
+		target, err := &t.invoiceDateTarget, error(nil)
+		return nil, target, err
 	case "Amount":
-		val, err := &vdl.Int64Target{Value: &t.Value.Amount}, error(nil)
-		return nil, val, err
+		t.amountTarget.Value = &t.Value.Amount
+		target, err := &t.amountTarget, error(nil)
+		return nil, target, err
 	case "ShipTo":
-		val, err := &AddressInfoTarget{Value: &t.Value.ShipTo}, error(nil)
-		return nil, val, err
+		t.shipToTarget.Value = &t.Value.ShipTo
+		target, err := &t.shipToTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_Invoice)
 	}
@@ -1547,7 +1613,18 @@
 }
 
 type NumbersTarget struct {
-	Value *Numbers
+	Value      *Numbers
+	bTarget    vdl.ByteTarget
+	ui16Target vdl.Uint16Target
+	ui32Target vdl.Uint32Target
+	ui64Target vdl.Uint64Target
+	i16Target  vdl.Int16Target
+	i32Target  vdl.Int32Target
+	i64Target  vdl.Int64Target
+	f32Target  vdl.Float32Target
+	f64Target  vdl.Float64Target
+	c64Target  vdl.Complex64Target
+	c128Target vdl.Complex128Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1561,38 +1638,49 @@
 func (t *NumbersTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "B":
-		val, err := &vdl.ByteTarget{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	case "Ui16":
-		val, err := &vdl.Uint16Target{Value: &t.Value.Ui16}, error(nil)
-		return nil, val, err
+		t.ui16Target.Value = &t.Value.Ui16
+		target, err := &t.ui16Target, error(nil)
+		return nil, target, err
 	case "Ui32":
-		val, err := &vdl.Uint32Target{Value: &t.Value.Ui32}, error(nil)
-		return nil, val, err
+		t.ui32Target.Value = &t.Value.Ui32
+		target, err := &t.ui32Target, error(nil)
+		return nil, target, err
 	case "Ui64":
-		val, err := &vdl.Uint64Target{Value: &t.Value.Ui64}, error(nil)
-		return nil, val, err
+		t.ui64Target.Value = &t.Value.Ui64
+		target, err := &t.ui64Target, error(nil)
+		return nil, target, err
 	case "I16":
-		val, err := &vdl.Int16Target{Value: &t.Value.I16}, error(nil)
-		return nil, val, err
+		t.i16Target.Value = &t.Value.I16
+		target, err := &t.i16Target, error(nil)
+		return nil, target, err
 	case "I32":
-		val, err := &vdl.Int32Target{Value: &t.Value.I32}, error(nil)
-		return nil, val, err
+		t.i32Target.Value = &t.Value.I32
+		target, err := &t.i32Target, error(nil)
+		return nil, target, err
 	case "I64":
-		val, err := &vdl.Int64Target{Value: &t.Value.I64}, error(nil)
-		return nil, val, err
+		t.i64Target.Value = &t.Value.I64
+		target, err := &t.i64Target, error(nil)
+		return nil, target, err
 	case "F32":
-		val, err := &vdl.Float32Target{Value: &t.Value.F32}, error(nil)
-		return nil, val, err
+		t.f32Target.Value = &t.Value.F32
+		target, err := &t.f32Target, error(nil)
+		return nil, target, err
 	case "F64":
-		val, err := &vdl.Float64Target{Value: &t.Value.F64}, error(nil)
-		return nil, val, err
+		t.f64Target.Value = &t.Value.F64
+		target, err := &t.f64Target, error(nil)
+		return nil, target, err
 	case "C64":
-		val, err := &vdl.Complex64Target{Value: &t.Value.C64}, error(nil)
-		return nil, val, err
+		t.c64Target.Value = &t.Value.C64
+		target, err := &t.c64Target, error(nil)
+		return nil, target, err
 	case "C128":
-		val, err := &vdl.Complex128Target{Value: &t.Value.C128}, error(nil)
-		return nil, val, err
+		t.c128Target.Value = &t.Value.C128
+		target, err := &t.c128Target, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_Numbers)
 	}
@@ -1647,7 +1735,8 @@
 }
 
 type FooTypeTarget struct {
-	Value *FooType
+	Value     *FooType
+	barTarget BarTypeTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1661,8 +1750,9 @@
 func (t *FooTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Bar":
-		val, err := &BarTypeTarget{Value: &t.Value.Bar}, error(nil)
-		return nil, val, err
+		t.barTarget.Value = &t.Value.Bar
+		target, err := &t.barTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_FooType)
 	}
@@ -1676,7 +1766,8 @@
 }
 
 type BarTypeTarget struct {
-	Value *BarType
+	Value     *BarType
+	bazTarget BazTypeTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1690,8 +1781,9 @@
 func (t *BarTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Baz":
-		val, err := &BazTypeTarget{Value: &t.Value.Baz}, error(nil)
-		return nil, val, err
+		t.bazTarget.Value = &t.Value.Baz
+		target, err := &t.bazTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_BarType)
 	}
@@ -1705,7 +1797,9 @@
 }
 
 type BazTypeTarget struct {
-	Value *BazType
+	Value      *BazType
+	nameTarget vdl.StringTarget
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1719,11 +1813,12 @@
 func (t *BazTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "TitleOrValue":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.TitleOrValue))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.TitleOrValue))
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_BazType)
 	}
@@ -1979,7 +2074,9 @@
 }
 
 type KTarget struct {
-	Value *K
+	Value   *K
+	aTarget vdl.ByteTarget
+	bTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1993,11 +2090,13 @@
 func (t *KTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &vdl.ByteTarget{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		t.aTarget.Value = &t.Value.A
+		target, err := &t.aTarget, error(nil)
+		return nil, target, err
 	case "B":
-		val, err := &vdl.StringTarget{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_K)
 	}
@@ -2064,7 +2163,9 @@
 }
 
 type VTarget struct {
-	Value *V
+	Value   *V
+	aTarget vdl.StringTarget
+	bTarget vdl.Float32Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2078,11 +2179,13 @@
 func (t *VTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &vdl.StringTarget{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		t.aTarget.Value = &t.Value.A
+		target, err := &t.aTarget, error(nil)
+		return nil, target, err
 	case "B":
-		val, err := &vdl.Float32Target{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_V)
 	}
@@ -2247,7 +2350,10 @@
 }
 
 type FunWithMapsTarget struct {
-	Value *FunWithMaps
+	Value           *FunWithMaps
+	keyTarget       KTarget
+	mapTarget       unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327dTarget
+	confusingTarget unnamed_6d61705b696e7431365d5b5d7365745b737472696e675dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2261,14 +2367,17 @@
 func (t *FunWithMapsTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key":
-		val, err := &KTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	case "Map":
-		val, err := &unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327d_Target{Value: &t.Value.Map}, error(nil)
-		return nil, val, err
+		t.mapTarget.Value = &t.Value.Map
+		target, err := &t.mapTarget, error(nil)
+		return nil, target, err
 	case "Confusing":
-		val, err := &unnamed_6d61705b696e7431365d5b5d7365745b737472696e675d_Target{Value: &t.Value.Confusing}, error(nil)
-		return nil, val, err
+		t.confusingTarget.Value = &t.Value.Confusing
+		target, err := &t.confusingTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_FunWithMaps)
 	}
@@ -2281,34 +2390,41 @@
 	return nil
 }
 
-type unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327d_Target struct {
-	Value    *map[K]V
-	currKey  K
-	currElem V
+// map[K]V
+type unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327dTarget struct {
+	Value      *map[K]V
+	currKey    K
+	currElem   V
+	keyTarget  KTarget
+	elemTarget VTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType17) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType17)
 	}
 	*t.Value = make(map[K]V)
 	return t, nil
 }
-func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = K{}
-	return &KTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = V{}
-	return &VTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e4b207374727563747b4120627974653b4220737472696e677d5d762e696f2f7632332f71756572792f656e67696e652f696e7465726e616c2f74657374646174612e56207374727563747b4120737472696e673b4220666c6f617433327dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -2316,34 +2432,41 @@
 	return nil
 }
 
-type unnamed_6d61705b696e7431365d5b5d7365745b737472696e675d_Target struct {
-	Value    *map[int16][]map[string]struct{}
-	currKey  int16
-	currElem []map[string]struct{}
+// map[int16][]map[string]struct{}
+type unnamed_6d61705b696e7431365d5b5d7365745b737472696e675dTarget struct {
+	Value      *map[int16][]map[string]struct{}
+	currKey    int16
+	currElem   []map[string]struct{}
+	keyTarget  vdl.Int16Target
+	elemTarget unnamed_5b5d7365745b737472696e675dTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType18) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType18)
 	}
 	*t.Value = make(map[int16][]map[string]struct{})
 	return t, nil
 }
-func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int16(0)
-	return &vdl.Int16Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = []map[string]struct{}(nil)
-	return &unnamed_5b5d7365745b737472696e675d_Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b696e7431365d5b5d7365745b737472696e675dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -2351,13 +2474,15 @@
 	return nil
 }
 
-type unnamed_5b5d7365745b737472696e675d_Target struct {
-	Value *[]map[string]struct{}
+// []map[string]struct{}
+type unnamed_5b5d7365745b737472696e675dTarget struct {
+	Value      *[]map[string]struct{}
+	elemTarget unnamed_7365745b737472696e675dTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d7365745b737472696e675d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d7365745b737472696e675dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType19) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType19)
 	}
@@ -2368,40 +2493,46 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d7365745b737472696e675d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &unnamed_7365745b737472696e675d_Target{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d7365745b737472696e675dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d7365745b737472696e675d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d7365745b737472696e675dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d7365745b737472696e675d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d7365745b737472696e675dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
-type unnamed_7365745b737472696e675d_Target struct {
-	Value   *map[string]struct{}
-	currKey string
+// map[string]struct{}
+type unnamed_7365745b737472696e675dTarget struct {
+	Value     *map[string]struct{}
+	currKey   string
+	keyTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b737472696e675d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b737472696e675dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType20) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType20)
 	}
 	*t.Value = make(map[string]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b737472696e675d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b737472696e675dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b737472696e675d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b737472696e675dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b737472696e675d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b737472696e675dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -2471,7 +2602,9 @@
 }
 
 type FunWithTypesTarget struct {
-	Value *FunWithTypes
+	Value    *FunWithTypes
+	t1Target vdl.TypeObjectTarget
+	t2Target vdl.TypeObjectTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2485,11 +2618,13 @@
 func (t *FunWithTypesTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "T1":
-		val, err := &vdl.TypeObjectTarget{Value: &t.Value.T1}, error(nil)
-		return nil, val, err
+		t.t1Target.Value = &t.Value.T1
+		target, err := &t.t1Target, error(nil)
+		return nil, target, err
 	case "T2":
-		val, err := &vdl.TypeObjectTarget{Value: &t.Value.T2}, error(nil)
-		return nil, val, err
+		t.t2Target.Value = &t.Value.T2
+		target, err := &t.t2Target, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_FunWithTypes)
 	}
@@ -3113,7 +3248,22 @@
 }
 
 type ManyMapsTarget struct {
-	Value *ManyMaps
+	Value      *ManyMaps
+	bTarget    unnamed_6d61705b626f6f6c5d737472696e67Target
+	byTarget   unnamed_6d61705b627974655d737472696e67Target
+	u16Target  unnamed_6d61705b75696e7431365d737472696e67Target
+	u32Target  unnamed_6d61705b75696e7433325d737472696e67Target
+	u64Target  unnamed_6d61705b75696e7436345d737472696e67Target
+	i16Target  unnamed_6d61705b696e7431365d737472696e67Target
+	i32Target  unnamed_6d61705b696e7433325d737472696e67Target
+	i64Target  unnamed_6d61705b696e7436345d737472696e67Target
+	f32Target  unnamed_6d61705b666c6f617433325d737472696e67Target
+	f64Target  unnamed_6d61705b666c6f617436345d737472696e67Target
+	c64Target  unnamed_6d61705b636f6d706c657836345d737472696e67Target
+	c128Target unnamed_6d61705b636f6d706c65783132385d737472696e67Target
+	sTarget    unnamed_6d61705b737472696e675d737472696e67Target
+	msTarget   unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67Target
+	tTarget    unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -3127,50 +3277,65 @@
 func (t *ManyMapsTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "B":
-		val, err := &unnamed_6d61705b626f6f6c5d737472696e67_Target{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	case "By":
-		val, err := &unnamed_6d61705b627974655d737472696e67_Target{Value: &t.Value.By}, error(nil)
-		return nil, val, err
+		t.byTarget.Value = &t.Value.By
+		target, err := &t.byTarget, error(nil)
+		return nil, target, err
 	case "U16":
-		val, err := &unnamed_6d61705b75696e7431365d737472696e67_Target{Value: &t.Value.U16}, error(nil)
-		return nil, val, err
+		t.u16Target.Value = &t.Value.U16
+		target, err := &t.u16Target, error(nil)
+		return nil, target, err
 	case "U32":
-		val, err := &unnamed_6d61705b75696e7433325d737472696e67_Target{Value: &t.Value.U32}, error(nil)
-		return nil, val, err
+		t.u32Target.Value = &t.Value.U32
+		target, err := &t.u32Target, error(nil)
+		return nil, target, err
 	case "U64":
-		val, err := &unnamed_6d61705b75696e7436345d737472696e67_Target{Value: &t.Value.U64}, error(nil)
-		return nil, val, err
+		t.u64Target.Value = &t.Value.U64
+		target, err := &t.u64Target, error(nil)
+		return nil, target, err
 	case "I16":
-		val, err := &unnamed_6d61705b696e7431365d737472696e67_Target{Value: &t.Value.I16}, error(nil)
-		return nil, val, err
+		t.i16Target.Value = &t.Value.I16
+		target, err := &t.i16Target, error(nil)
+		return nil, target, err
 	case "I32":
-		val, err := &unnamed_6d61705b696e7433325d737472696e67_Target{Value: &t.Value.I32}, error(nil)
-		return nil, val, err
+		t.i32Target.Value = &t.Value.I32
+		target, err := &t.i32Target, error(nil)
+		return nil, target, err
 	case "I64":
-		val, err := &unnamed_6d61705b696e7436345d737472696e67_Target{Value: &t.Value.I64}, error(nil)
-		return nil, val, err
+		t.i64Target.Value = &t.Value.I64
+		target, err := &t.i64Target, error(nil)
+		return nil, target, err
 	case "F32":
-		val, err := &unnamed_6d61705b666c6f617433325d737472696e67_Target{Value: &t.Value.F32}, error(nil)
-		return nil, val, err
+		t.f32Target.Value = &t.Value.F32
+		target, err := &t.f32Target, error(nil)
+		return nil, target, err
 	case "F64":
-		val, err := &unnamed_6d61705b666c6f617436345d737472696e67_Target{Value: &t.Value.F64}, error(nil)
-		return nil, val, err
+		t.f64Target.Value = &t.Value.F64
+		target, err := &t.f64Target, error(nil)
+		return nil, target, err
 	case "C64":
-		val, err := &unnamed_6d61705b636f6d706c657836345d737472696e67_Target{Value: &t.Value.C64}, error(nil)
-		return nil, val, err
+		t.c64Target.Value = &t.Value.C64
+		target, err := &t.c64Target, error(nil)
+		return nil, target, err
 	case "C128":
-		val, err := &unnamed_6d61705b636f6d706c65783132385d737472696e67_Target{Value: &t.Value.C128}, error(nil)
-		return nil, val, err
+		t.c128Target.Value = &t.Value.C128
+		target, err := &t.c128Target, error(nil)
+		return nil, target, err
 	case "S":
-		val, err := &unnamed_6d61705b737472696e675d737472696e67_Target{Value: &t.Value.S}, error(nil)
-		return nil, val, err
+		t.sTarget.Value = &t.Value.S
+		target, err := &t.sTarget, error(nil)
+		return nil, target, err
 	case "Ms":
-		val, err := &unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67_Target{Value: &t.Value.Ms}, error(nil)
-		return nil, val, err
+		t.msTarget.Value = &t.Value.Ms
+		target, err := &t.msTarget, error(nil)
+		return nil, target, err
 	case "T":
-		val, err := &unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67_Target{Value: &t.Value.T}, error(nil)
-		return nil, val, err
+		t.tTarget.Value = &t.Value.T
+		target, err := &t.tTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_ManyMaps)
 	}
@@ -3183,34 +3348,41 @@
 	return nil
 }
 
-type unnamed_6d61705b626f6f6c5d737472696e67_Target struct {
-	Value    *map[bool]string
-	currKey  bool
-	currElem string
+// map[bool]string
+type unnamed_6d61705b626f6f6c5d737472696e67Target struct {
+	Value      *map[bool]string
+	currKey    bool
+	currElem   string
+	keyTarget  vdl.BoolTarget
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b626f6f6c5d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b626f6f6c5d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType23) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType23)
 	}
 	*t.Value = make(map[bool]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b626f6f6c5d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b626f6f6c5d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = false
-	return &vdl.BoolTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b626f6f6c5d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b626f6f6c5d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b626f6f6c5d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b626f6f6c5d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b626f6f6c5d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b626f6f6c5d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3218,34 +3390,41 @@
 	return nil
 }
 
-type unnamed_6d61705b627974655d737472696e67_Target struct {
-	Value    *map[byte]string
-	currKey  byte
-	currElem string
+// map[byte]string
+type unnamed_6d61705b627974655d737472696e67Target struct {
+	Value      *map[byte]string
+	currKey    byte
+	currElem   string
+	keyTarget  vdl.ByteTarget
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b627974655d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b627974655d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType24) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType24)
 	}
 	*t.Value = make(map[byte]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b627974655d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b627974655d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = byte(0)
-	return &vdl.ByteTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b627974655d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b627974655d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b627974655d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b627974655d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b627974655d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b627974655d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3253,34 +3432,41 @@
 	return nil
 }
 
-type unnamed_6d61705b75696e7431365d737472696e67_Target struct {
-	Value    *map[uint16]string
-	currKey  uint16
-	currElem string
+// map[uint16]string
+type unnamed_6d61705b75696e7431365d737472696e67Target struct {
+	Value      *map[uint16]string
+	currKey    uint16
+	currElem   string
+	keyTarget  vdl.Uint16Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b75696e7431365d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b75696e7431365d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType25) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType25)
 	}
 	*t.Value = make(map[uint16]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b75696e7431365d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7431365d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint16(0)
-	return &vdl.Uint16Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7431365d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7431365d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7431365d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b75696e7431365d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b75696e7431365d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b75696e7431365d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3288,34 +3474,41 @@
 	return nil
 }
 
-type unnamed_6d61705b75696e7433325d737472696e67_Target struct {
-	Value    *map[uint32]string
-	currKey  uint32
-	currElem string
+// map[uint32]string
+type unnamed_6d61705b75696e7433325d737472696e67Target struct {
+	Value      *map[uint32]string
+	currKey    uint32
+	currElem   string
+	keyTarget  vdl.Uint32Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b75696e7433325d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b75696e7433325d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType26) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType26)
 	}
 	*t.Value = make(map[uint32]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b75696e7433325d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7433325d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint32(0)
-	return &vdl.Uint32Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7433325d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7433325d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7433325d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b75696e7433325d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b75696e7433325d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b75696e7433325d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3323,34 +3516,41 @@
 	return nil
 }
 
-type unnamed_6d61705b75696e7436345d737472696e67_Target struct {
-	Value    *map[uint64]string
-	currKey  uint64
-	currElem string
+// map[uint64]string
+type unnamed_6d61705b75696e7436345d737472696e67Target struct {
+	Value      *map[uint64]string
+	currKey    uint64
+	currElem   string
+	keyTarget  vdl.Uint64Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b75696e7436345d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b75696e7436345d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType27) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType27)
 	}
 	*t.Value = make(map[uint64]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b75696e7436345d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7436345d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint64(0)
-	return &vdl.Uint64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7436345d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7436345d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7436345d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b75696e7436345d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b75696e7436345d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b75696e7436345d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3358,34 +3558,41 @@
 	return nil
 }
 
-type unnamed_6d61705b696e7431365d737472696e67_Target struct {
-	Value    *map[int16]string
-	currKey  int16
-	currElem string
+// map[int16]string
+type unnamed_6d61705b696e7431365d737472696e67Target struct {
+	Value      *map[int16]string
+	currKey    int16
+	currElem   string
+	keyTarget  vdl.Int16Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b696e7431365d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b696e7431365d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType28) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType28)
 	}
 	*t.Value = make(map[int16]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b696e7431365d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7431365d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int16(0)
-	return &vdl.Int16Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7431365d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7431365d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7431365d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b696e7431365d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b696e7431365d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b696e7431365d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3393,34 +3600,41 @@
 	return nil
 }
 
-type unnamed_6d61705b696e7433325d737472696e67_Target struct {
-	Value    *map[int32]string
-	currKey  int32
-	currElem string
+// map[int32]string
+type unnamed_6d61705b696e7433325d737472696e67Target struct {
+	Value      *map[int32]string
+	currKey    int32
+	currElem   string
+	keyTarget  vdl.Int32Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b696e7433325d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b696e7433325d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType29) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType29)
 	}
 	*t.Value = make(map[int32]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b696e7433325d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7433325d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int32(0)
-	return &vdl.Int32Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7433325d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7433325d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7433325d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b696e7433325d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b696e7433325d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b696e7433325d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3428,34 +3642,41 @@
 	return nil
 }
 
-type unnamed_6d61705b696e7436345d737472696e67_Target struct {
-	Value    *map[int64]string
-	currKey  int64
-	currElem string
+// map[int64]string
+type unnamed_6d61705b696e7436345d737472696e67Target struct {
+	Value      *map[int64]string
+	currKey    int64
+	currElem   string
+	keyTarget  vdl.Int64Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b696e7436345d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b696e7436345d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType30) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType30)
 	}
 	*t.Value = make(map[int64]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b696e7436345d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7436345d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int64(0)
-	return &vdl.Int64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7436345d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7436345d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7436345d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b696e7436345d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b696e7436345d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b696e7436345d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3463,34 +3684,41 @@
 	return nil
 }
 
-type unnamed_6d61705b666c6f617433325d737472696e67_Target struct {
-	Value    *map[float32]string
-	currKey  float32
-	currElem string
+// map[float32]string
+type unnamed_6d61705b666c6f617433325d737472696e67Target struct {
+	Value      *map[float32]string
+	currKey    float32
+	currElem   string
+	keyTarget  vdl.Float32Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b666c6f617433325d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b666c6f617433325d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType31) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType31)
 	}
 	*t.Value = make(map[float32]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b666c6f617433325d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b666c6f617433325d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = float32(0)
-	return &vdl.Float32Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b666c6f617433325d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b666c6f617433325d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b666c6f617433325d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b666c6f617433325d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b666c6f617433325d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b666c6f617433325d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3498,34 +3726,41 @@
 	return nil
 }
 
-type unnamed_6d61705b666c6f617436345d737472696e67_Target struct {
-	Value    *map[float64]string
-	currKey  float64
-	currElem string
+// map[float64]string
+type unnamed_6d61705b666c6f617436345d737472696e67Target struct {
+	Value      *map[float64]string
+	currKey    float64
+	currElem   string
+	keyTarget  vdl.Float64Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b666c6f617436345d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b666c6f617436345d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType32) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType32)
 	}
 	*t.Value = make(map[float64]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b666c6f617436345d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b666c6f617436345d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = float64(0)
-	return &vdl.Float64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b666c6f617436345d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b666c6f617436345d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b666c6f617436345d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b666c6f617436345d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b666c6f617436345d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b666c6f617436345d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3533,34 +3768,41 @@
 	return nil
 }
 
-type unnamed_6d61705b636f6d706c657836345d737472696e67_Target struct {
-	Value    *map[complex64]string
-	currKey  complex64
-	currElem string
+// map[complex64]string
+type unnamed_6d61705b636f6d706c657836345d737472696e67Target struct {
+	Value      *map[complex64]string
+	currKey    complex64
+	currElem   string
+	keyTarget  vdl.Complex64Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b636f6d706c657836345d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b636f6d706c657836345d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType33) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType33)
 	}
 	*t.Value = make(map[complex64]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b636f6d706c657836345d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b636f6d706c657836345d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = complex64(0)
-	return &vdl.Complex64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b636f6d706c657836345d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b636f6d706c657836345d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b636f6d706c657836345d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b636f6d706c657836345d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b636f6d706c657836345d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b636f6d706c657836345d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3568,34 +3810,41 @@
 	return nil
 }
 
-type unnamed_6d61705b636f6d706c65783132385d737472696e67_Target struct {
-	Value    *map[complex128]string
-	currKey  complex128
-	currElem string
+// map[complex128]string
+type unnamed_6d61705b636f6d706c65783132385d737472696e67Target struct {
+	Value      *map[complex128]string
+	currKey    complex128
+	currElem   string
+	keyTarget  vdl.Complex128Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType34) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType34)
 	}
 	*t.Value = make(map[complex128]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = complex128(0)
-	return &vdl.Complex128Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3603,34 +3852,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d737472696e67_Target struct {
-	Value    *map[string]string
-	currKey  string
-	currElem string
+// map[string]string
+type unnamed_6d61705b737472696e675d737472696e67Target struct {
+	Value      *map[string]string
+	currKey    string
+	currElem   string
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType35) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType35)
 	}
 	*t.Value = make(map[string]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3638,34 +3894,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67_Target struct {
-	Value    *map[string]map[string]string
-	currKey  string
-	currElem map[string]string
+// map[string]map[string]string
+type unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67Target struct {
+	Value      *map[string]map[string]string
+	currKey    string
+	currElem   map[string]string
+	keyTarget  vdl.StringTarget
+	elemTarget unnamed_6d61705b737472696e675d737472696e67Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType36) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType36)
 	}
 	*t.Value = make(map[string]map[string]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = map[string]string(nil)
-	return &unnamed_6d61705b737472696e675d737472696e67_Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d6d61705b737472696e675d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -3673,34 +3936,41 @@
 	return nil
 }
 
-type unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67_Target struct {
-	Value    *map[time.Time]string
-	currKey  time.Time
-	currElem string
+// map[time.Time]string
+type unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67Target struct {
+	Value      *map[time.Time]string
+	currKey    time.Time
+	currElem   string
+	keyTarget  time_2.TimeTarget
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType37) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType37)
 	}
 	*t.Value = make(map[time.Time]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = reflect.Zero(reflect.TypeOf(t.currKey)).Interface().(time.Time)
-	return &time_2.TimeTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4160,7 +4430,21 @@
 }
 
 type ManySetsTarget struct {
-	Value *ManySets
+	Value      *ManySets
+	bTarget    unnamed_7365745b626f6f6c5dTarget
+	byTarget   unnamed_7365745b627974655dTarget
+	u16Target  unnamed_7365745b75696e7431365dTarget
+	u32Target  unnamed_7365745b75696e7433325dTarget
+	u64Target  unnamed_7365745b75696e7436345dTarget
+	i16Target  unnamed_7365745b696e7431365dTarget
+	i32Target  unnamed_7365745b696e7433325dTarget
+	i64Target  unnamed_7365745b696e7436345dTarget
+	f32Target  unnamed_7365745b666c6f617433325dTarget
+	f64Target  unnamed_7365745b666c6f617436345dTarget
+	c64Target  unnamed_7365745b636f6d706c657836345dTarget
+	c128Target unnamed_7365745b636f6d706c65783132385dTarget
+	sTarget    unnamed_7365745b737472696e675dTarget
+	tTarget    unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -4174,47 +4458,61 @@
 func (t *ManySetsTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "B":
-		val, err := &unnamed_7365745b626f6f6c5d_Target{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	case "By":
-		val, err := &unnamed_7365745b627974655d_Target{Value: &t.Value.By}, error(nil)
-		return nil, val, err
+		t.byTarget.Value = &t.Value.By
+		target, err := &t.byTarget, error(nil)
+		return nil, target, err
 	case "U16":
-		val, err := &unnamed_7365745b75696e7431365d_Target{Value: &t.Value.U16}, error(nil)
-		return nil, val, err
+		t.u16Target.Value = &t.Value.U16
+		target, err := &t.u16Target, error(nil)
+		return nil, target, err
 	case "U32":
-		val, err := &unnamed_7365745b75696e7433325d_Target{Value: &t.Value.U32}, error(nil)
-		return nil, val, err
+		t.u32Target.Value = &t.Value.U32
+		target, err := &t.u32Target, error(nil)
+		return nil, target, err
 	case "U64":
-		val, err := &unnamed_7365745b75696e7436345d_Target{Value: &t.Value.U64}, error(nil)
-		return nil, val, err
+		t.u64Target.Value = &t.Value.U64
+		target, err := &t.u64Target, error(nil)
+		return nil, target, err
 	case "I16":
-		val, err := &unnamed_7365745b696e7431365d_Target{Value: &t.Value.I16}, error(nil)
-		return nil, val, err
+		t.i16Target.Value = &t.Value.I16
+		target, err := &t.i16Target, error(nil)
+		return nil, target, err
 	case "I32":
-		val, err := &unnamed_7365745b696e7433325d_Target{Value: &t.Value.I32}, error(nil)
-		return nil, val, err
+		t.i32Target.Value = &t.Value.I32
+		target, err := &t.i32Target, error(nil)
+		return nil, target, err
 	case "I64":
-		val, err := &unnamed_7365745b696e7436345d_Target{Value: &t.Value.I64}, error(nil)
-		return nil, val, err
+		t.i64Target.Value = &t.Value.I64
+		target, err := &t.i64Target, error(nil)
+		return nil, target, err
 	case "F32":
-		val, err := &unnamed_7365745b666c6f617433325d_Target{Value: &t.Value.F32}, error(nil)
-		return nil, val, err
+		t.f32Target.Value = &t.Value.F32
+		target, err := &t.f32Target, error(nil)
+		return nil, target, err
 	case "F64":
-		val, err := &unnamed_7365745b666c6f617436345d_Target{Value: &t.Value.F64}, error(nil)
-		return nil, val, err
+		t.f64Target.Value = &t.Value.F64
+		target, err := &t.f64Target, error(nil)
+		return nil, target, err
 	case "C64":
-		val, err := &unnamed_7365745b636f6d706c657836345d_Target{Value: &t.Value.C64}, error(nil)
-		return nil, val, err
+		t.c64Target.Value = &t.Value.C64
+		target, err := &t.c64Target, error(nil)
+		return nil, target, err
 	case "C128":
-		val, err := &unnamed_7365745b636f6d706c65783132385d_Target{Value: &t.Value.C128}, error(nil)
-		return nil, val, err
+		t.c128Target.Value = &t.Value.C128
+		target, err := &t.c128Target, error(nil)
+		return nil, target, err
 	case "S":
-		val, err := &unnamed_7365745b737472696e675d_Target{Value: &t.Value.S}, error(nil)
-		return nil, val, err
+		t.sTarget.Value = &t.Value.S
+		target, err := &t.sTarget, error(nil)
+		return nil, target, err
 	case "T":
-		val, err := &unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d_Target{Value: &t.Value.T}, error(nil)
-		return nil, val, err
+		t.tTarget.Value = &t.Value.T
+		target, err := &t.tTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_ManySets)
 	}
@@ -4227,29 +4525,33 @@
 	return nil
 }
 
-type unnamed_7365745b626f6f6c5d_Target struct {
-	Value   *map[bool]struct{}
-	currKey bool
+// map[bool]struct{}
+type unnamed_7365745b626f6f6c5dTarget struct {
+	Value     *map[bool]struct{}
+	currKey   bool
+	keyTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b626f6f6c5d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b626f6f6c5dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType39) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType39)
 	}
 	*t.Value = make(map[bool]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b626f6f6c5d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b626f6f6c5dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = false
-	return &vdl.BoolTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b626f6f6c5d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b626f6f6c5dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b626f6f6c5d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b626f6f6c5dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4257,29 +4559,33 @@
 	return nil
 }
 
-type unnamed_7365745b627974655d_Target struct {
-	Value   *map[byte]struct{}
-	currKey byte
+// map[byte]struct{}
+type unnamed_7365745b627974655dTarget struct {
+	Value     *map[byte]struct{}
+	currKey   byte
+	keyTarget vdl.ByteTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b627974655d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b627974655dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType40) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType40)
 	}
 	*t.Value = make(map[byte]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b627974655d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b627974655dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = byte(0)
-	return &vdl.ByteTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b627974655d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b627974655dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b627974655d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b627974655dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4287,29 +4593,33 @@
 	return nil
 }
 
-type unnamed_7365745b75696e7431365d_Target struct {
-	Value   *map[uint16]struct{}
-	currKey uint16
+// map[uint16]struct{}
+type unnamed_7365745b75696e7431365dTarget struct {
+	Value     *map[uint16]struct{}
+	currKey   uint16
+	keyTarget vdl.Uint16Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b75696e7431365d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b75696e7431365dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType41) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType41)
 	}
 	*t.Value = make(map[uint16]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b75696e7431365d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b75696e7431365dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint16(0)
-	return &vdl.Uint16Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b75696e7431365d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b75696e7431365dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b75696e7431365d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b75696e7431365dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4317,29 +4627,33 @@
 	return nil
 }
 
-type unnamed_7365745b75696e7433325d_Target struct {
-	Value   *map[uint32]struct{}
-	currKey uint32
+// map[uint32]struct{}
+type unnamed_7365745b75696e7433325dTarget struct {
+	Value     *map[uint32]struct{}
+	currKey   uint32
+	keyTarget vdl.Uint32Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b75696e7433325d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b75696e7433325dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType42) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType42)
 	}
 	*t.Value = make(map[uint32]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b75696e7433325d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b75696e7433325dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint32(0)
-	return &vdl.Uint32Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b75696e7433325d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b75696e7433325dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b75696e7433325d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b75696e7433325dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4347,29 +4661,33 @@
 	return nil
 }
 
-type unnamed_7365745b75696e7436345d_Target struct {
-	Value   *map[uint64]struct{}
-	currKey uint64
+// map[uint64]struct{}
+type unnamed_7365745b75696e7436345dTarget struct {
+	Value     *map[uint64]struct{}
+	currKey   uint64
+	keyTarget vdl.Uint64Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b75696e7436345d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b75696e7436345dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType43) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType43)
 	}
 	*t.Value = make(map[uint64]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b75696e7436345d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b75696e7436345dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint64(0)
-	return &vdl.Uint64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b75696e7436345d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b75696e7436345dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b75696e7436345d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b75696e7436345dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4377,29 +4695,33 @@
 	return nil
 }
 
-type unnamed_7365745b696e7431365d_Target struct {
-	Value   *map[int16]struct{}
-	currKey int16
+// map[int16]struct{}
+type unnamed_7365745b696e7431365dTarget struct {
+	Value     *map[int16]struct{}
+	currKey   int16
+	keyTarget vdl.Int16Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b696e7431365d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b696e7431365dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType44) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType44)
 	}
 	*t.Value = make(map[int16]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b696e7431365d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b696e7431365dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int16(0)
-	return &vdl.Int16Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b696e7431365d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b696e7431365dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b696e7431365d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b696e7431365dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4407,29 +4729,33 @@
 	return nil
 }
 
-type unnamed_7365745b696e7433325d_Target struct {
-	Value   *map[int32]struct{}
-	currKey int32
+// map[int32]struct{}
+type unnamed_7365745b696e7433325dTarget struct {
+	Value     *map[int32]struct{}
+	currKey   int32
+	keyTarget vdl.Int32Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b696e7433325d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b696e7433325dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType45) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType45)
 	}
 	*t.Value = make(map[int32]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b696e7433325d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b696e7433325dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int32(0)
-	return &vdl.Int32Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b696e7433325d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b696e7433325dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b696e7433325d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b696e7433325dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4437,29 +4763,33 @@
 	return nil
 }
 
-type unnamed_7365745b696e7436345d_Target struct {
-	Value   *map[int64]struct{}
-	currKey int64
+// map[int64]struct{}
+type unnamed_7365745b696e7436345dTarget struct {
+	Value     *map[int64]struct{}
+	currKey   int64
+	keyTarget vdl.Int64Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b696e7436345d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b696e7436345dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType46) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType46)
 	}
 	*t.Value = make(map[int64]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b696e7436345d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b696e7436345dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int64(0)
-	return &vdl.Int64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b696e7436345d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b696e7436345dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b696e7436345d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b696e7436345dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4467,29 +4797,33 @@
 	return nil
 }
 
-type unnamed_7365745b666c6f617433325d_Target struct {
-	Value   *map[float32]struct{}
-	currKey float32
+// map[float32]struct{}
+type unnamed_7365745b666c6f617433325dTarget struct {
+	Value     *map[float32]struct{}
+	currKey   float32
+	keyTarget vdl.Float32Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b666c6f617433325d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b666c6f617433325dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType47) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType47)
 	}
 	*t.Value = make(map[float32]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b666c6f617433325d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b666c6f617433325dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = float32(0)
-	return &vdl.Float32Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b666c6f617433325d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b666c6f617433325dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b666c6f617433325d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b666c6f617433325dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4497,29 +4831,33 @@
 	return nil
 }
 
-type unnamed_7365745b666c6f617436345d_Target struct {
-	Value   *map[float64]struct{}
-	currKey float64
+// map[float64]struct{}
+type unnamed_7365745b666c6f617436345dTarget struct {
+	Value     *map[float64]struct{}
+	currKey   float64
+	keyTarget vdl.Float64Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b666c6f617436345d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b666c6f617436345dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType48) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType48)
 	}
 	*t.Value = make(map[float64]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b666c6f617436345d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b666c6f617436345dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = float64(0)
-	return &vdl.Float64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b666c6f617436345d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b666c6f617436345dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b666c6f617436345d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b666c6f617436345dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4527,29 +4865,33 @@
 	return nil
 }
 
-type unnamed_7365745b636f6d706c657836345d_Target struct {
-	Value   *map[complex64]struct{}
-	currKey complex64
+// map[complex64]struct{}
+type unnamed_7365745b636f6d706c657836345dTarget struct {
+	Value     *map[complex64]struct{}
+	currKey   complex64
+	keyTarget vdl.Complex64Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b636f6d706c657836345d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b636f6d706c657836345dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType49) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType49)
 	}
 	*t.Value = make(map[complex64]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b636f6d706c657836345d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b636f6d706c657836345dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = complex64(0)
-	return &vdl.Complex64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b636f6d706c657836345d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b636f6d706c657836345dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b636f6d706c657836345d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b636f6d706c657836345dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4557,29 +4899,33 @@
 	return nil
 }
 
-type unnamed_7365745b636f6d706c65783132385d_Target struct {
-	Value   *map[complex128]struct{}
-	currKey complex128
+// map[complex128]struct{}
+type unnamed_7365745b636f6d706c65783132385dTarget struct {
+	Value     *map[complex128]struct{}
+	currKey   complex128
+	keyTarget vdl.Complex128Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b636f6d706c65783132385d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b636f6d706c65783132385dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType50) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType50)
 	}
 	*t.Value = make(map[complex128]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b636f6d706c65783132385d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b636f6d706c65783132385dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = complex128(0)
-	return &vdl.Complex128Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b636f6d706c65783132385d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b636f6d706c65783132385dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b636f6d706c65783132385d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b636f6d706c65783132385dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4587,29 +4933,33 @@
 	return nil
 }
 
-type unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d_Target struct {
-	Value   *map[time.Time]struct{}
-	currKey time.Time
+// map[time.Time]struct{}
+type unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5dTarget struct {
+	Value     *map[time.Time]struct{}
+	currKey   time.Time
+	keyTarget time_2.TimeTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType51) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType51)
 	}
 	*t.Value = make(map[time.Time]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = reflect.Zero(reflect.TypeOf(t.currKey)).Interface().(time.Time)
-	return &time_2.TimeTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b74696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d5dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -4658,7 +5008,8 @@
 }
 
 type BigDataTarget struct {
-	Value *BigData
+	Value     *BigData
+	keyTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -4672,8 +5023,9 @@
 func (t *BigDataTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key":
-		val, err := &vdl.StringTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_query_engine_internal_testdata_BigData)
 	}
diff --git a/rpc/rpc.vdl.go b/rpc/rpc.vdl.go
index a4999ac..df183d4 100644
--- a/rpc/rpc.vdl.go
+++ b/rpc/rpc.vdl.go
@@ -186,7 +186,15 @@
 }
 
 type RequestTarget struct {
-	Value *Request
+	Value                  *Request
+	suffixTarget           vdl.StringTarget
+	methodTarget           vdl.StringTarget
+	numPosArgsTarget       vdl.Uint64Target
+	endStreamArgsTarget    vdl.BoolTarget
+	deadlineTarget         time.WireDeadlineTarget
+	grantedBlessingsTarget security.WireBlessingsTarget
+	traceRequestTarget     vtrace.RequestTarget
+	languageTarget         vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -200,29 +208,37 @@
 func (t *RequestTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Suffix":
-		val, err := &vdl.StringTarget{Value: &t.Value.Suffix}, error(nil)
-		return nil, val, err
+		t.suffixTarget.Value = &t.Value.Suffix
+		target, err := &t.suffixTarget, error(nil)
+		return nil, target, err
 	case "Method":
-		val, err := &vdl.StringTarget{Value: &t.Value.Method}, error(nil)
-		return nil, val, err
+		t.methodTarget.Value = &t.Value.Method
+		target, err := &t.methodTarget, error(nil)
+		return nil, target, err
 	case "NumPosArgs":
-		val, err := &vdl.Uint64Target{Value: &t.Value.NumPosArgs}, error(nil)
-		return nil, val, err
+		t.numPosArgsTarget.Value = &t.Value.NumPosArgs
+		target, err := &t.numPosArgsTarget, error(nil)
+		return nil, target, err
 	case "EndStreamArgs":
-		val, err := &vdl.BoolTarget{Value: &t.Value.EndStreamArgs}, error(nil)
-		return nil, val, err
+		t.endStreamArgsTarget.Value = &t.Value.EndStreamArgs
+		target, err := &t.endStreamArgsTarget, error(nil)
+		return nil, target, err
 	case "Deadline":
-		val, err := &time.WireDeadlineTarget{Value: &t.Value.Deadline}, error(nil)
-		return nil, val, err
+		t.deadlineTarget.Value = &t.Value.Deadline
+		target, err := &t.deadlineTarget, error(nil)
+		return nil, target, err
 	case "GrantedBlessings":
-		val, err := &security.WireBlessingsTarget{Value: &t.Value.GrantedBlessings}, error(nil)
-		return nil, val, err
+		t.grantedBlessingsTarget.Value = &t.Value.GrantedBlessings
+		target, err := &t.grantedBlessingsTarget, error(nil)
+		return nil, target, err
 	case "TraceRequest":
-		val, err := &vtrace.RequestTarget{Value: &t.Value.TraceRequest}, error(nil)
-		return nil, val, err
+		t.traceRequestTarget.Value = &t.Value.TraceRequest
+		target, err := &t.traceRequestTarget, error(nil)
+		return nil, target, err
 	case "Language":
-		val, err := &vdl.StringTarget{Value: &t.Value.Language}, error(nil)
-		return nil, val, err
+		t.languageTarget.Value = &t.Value.Language
+		target, err := &t.languageTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_rpc_Request)
 	}
@@ -353,7 +369,12 @@
 }
 
 type ResponseTarget struct {
-	Value *Response
+	Value                  *Response
+	errorTarget            verror.ErrorTarget
+	endStreamResultsTarget vdl.BoolTarget
+	numPosResultsTarget    vdl.Uint64Target
+	traceResponseTarget    vtrace.ResponseTarget
+	ackBlessingsTarget     vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -367,20 +388,25 @@
 func (t *ResponseTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Error":
-		val, err := &verror.ErrorTarget{Value: &t.Value.Error}, error(nil)
-		return nil, val, err
+		t.errorTarget.Value = &t.Value.Error
+		target, err := &t.errorTarget, error(nil)
+		return nil, target, err
 	case "EndStreamResults":
-		val, err := &vdl.BoolTarget{Value: &t.Value.EndStreamResults}, error(nil)
-		return nil, val, err
+		t.endStreamResultsTarget.Value = &t.Value.EndStreamResults
+		target, err := &t.endStreamResultsTarget, error(nil)
+		return nil, target, err
 	case "NumPosResults":
-		val, err := &vdl.Uint64Target{Value: &t.Value.NumPosResults}, error(nil)
-		return nil, val, err
+		t.numPosResultsTarget.Value = &t.Value.NumPosResults
+		target, err := &t.numPosResultsTarget, error(nil)
+		return nil, target, err
 	case "TraceResponse":
-		val, err := &vtrace.ResponseTarget{Value: &t.Value.TraceResponse}, error(nil)
-		return nil, val, err
+		t.traceResponseTarget.Value = &t.Value.TraceResponse
+		target, err := &t.traceResponseTarget, error(nil)
+		return nil, target, err
 	case "AckBlessings":
-		val, err := &vdl.BoolTarget{Value: &t.Value.AckBlessings}, error(nil)
-		return nil, val, err
+		t.ackBlessingsTarget.Value = &t.Value.AckBlessings
+		target, err := &t.ackBlessingsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_rpc_Response)
 	}
diff --git a/security/access/access.vdl.go b/security/access/access.vdl.go
index 0b6a33f..845ac9d 100644
--- a/security/access/access.vdl.go
+++ b/security/access/access.vdl.go
@@ -220,7 +220,9 @@
 }
 
 type AccessListTarget struct {
-	Value *AccessList
+	Value       *AccessList
+	inTarget    unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target
+	notInTarget vdl.StringSliceTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -234,11 +236,13 @@
 func (t *AccessListTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "In":
-		val, err := &unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target{Value: &t.Value.In}, error(nil)
-		return nil, val, err
+		t.inTarget.Value = &t.Value.In
+		target, err := &t.inTarget, error(nil)
+		return nil, target, err
 	case "NotIn":
-		val, err := &vdl.StringSliceTarget{Value: &t.Value.NotIn}, error(nil)
-		return nil, val, err
+		t.notInTarget.Value = &t.Value.NotIn
+		target, err := &t.notInTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_access_AccessList)
 	}
@@ -251,13 +255,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target struct {
-	Value *[]security.BlessingPattern
+// []security.BlessingPattern
+type unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target struct {
+	Value      *[]security.BlessingPattern
+	elemTarget security.BlessingPatternTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType1) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType1)
 	}
@@ -268,13 +274,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &security.BlessingPatternTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -329,9 +337,11 @@
 }
 
 type PermissionsTarget struct {
-	Value    *Permissions
-	currKey  string
-	currElem AccessList
+	Value      *Permissions
+	currKey    string
+	currElem   AccessList
+	keyTarget  vdl.StringTarget
+	elemTarget AccessListTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -345,11 +355,15 @@
 }
 func (t *PermissionsTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *PermissionsTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = AccessList{}
-	return &AccessListTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *PermissionsTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
diff --git a/security/security.vdl.go b/security/security.vdl.go
index a92f9c2..46b3cb8 100644
--- a/security/security.vdl.go
+++ b/security/security.vdl.go
@@ -188,7 +188,12 @@
 }
 
 type publicKeyThirdPartyCaveatParamTarget struct {
-	Value *publicKeyThirdPartyCaveatParam
+	Value                        *publicKeyThirdPartyCaveatParam
+	nonceTarget                  nonceTarget
+	caveatsTarget                unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657dTarget
+	dischargerKeyTarget          vdl.BytesTarget
+	dischargerLocationTarget     vdl.StringTarget
+	dischargerRequirementsTarget ThirdPartyRequirementsTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -202,20 +207,25 @@
 func (t *publicKeyThirdPartyCaveatParamTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Nonce":
-		val, err := &nonceTarget{Value: &t.Value.Nonce}, error(nil)
-		return nil, val, err
+		t.nonceTarget.Value = &t.Value.Nonce
+		target, err := &t.nonceTarget, error(nil)
+		return nil, target, err
 	case "Caveats":
-		val, err := &unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d_Target{Value: &t.Value.Caveats}, error(nil)
-		return nil, val, err
+		t.caveatsTarget.Value = &t.Value.Caveats
+		target, err := &t.caveatsTarget, error(nil)
+		return nil, target, err
 	case "DischargerKey":
-		val, err := &vdl.BytesTarget{Value: &t.Value.DischargerKey}, error(nil)
-		return nil, val, err
+		t.dischargerKeyTarget.Value = &t.Value.DischargerKey
+		target, err := &t.dischargerKeyTarget, error(nil)
+		return nil, target, err
 	case "DischargerLocation":
-		val, err := &vdl.StringTarget{Value: &t.Value.DischargerLocation}, error(nil)
-		return nil, val, err
+		t.dischargerLocationTarget.Value = &t.Value.DischargerLocation
+		target, err := &t.dischargerLocationTarget, error(nil)
+		return nil, target, err
 	case "DischargerRequirements":
-		val, err := &ThirdPartyRequirementsTarget{Value: &t.Value.DischargerRequirements}, error(nil)
-		return nil, val, err
+		t.dischargerRequirementsTarget.Value = &t.Value.DischargerRequirements
+		target, err := &t.dischargerRequirementsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_publicKeyThirdPartyCaveatParam)
 	}
@@ -228,13 +238,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d_Target struct {
-	Value *[]Caveat
+// []Caveat
+type unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657dTarget struct {
+	Value      *[]Caveat
+	elemTarget CaveatTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType1) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType1)
 	}
@@ -245,19 +257,23 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &CaveatTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
 type CaveatTarget struct {
-	Value *Caveat
+	Value          *Caveat
+	idTarget       uniqueid.IdTarget
+	paramVomTarget vdl.BytesTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -271,11 +287,13 @@
 func (t *CaveatTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Id":
-		val, err := &uniqueid.IdTarget{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "ParamVom":
-		val, err := &vdl.BytesTarget{Value: &t.Value.ParamVom}, error(nil)
-		return nil, val, err
+		t.paramVomTarget.Value = &t.Value.ParamVom
+		target, err := &t.paramVomTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_Caveat)
 	}
@@ -289,7 +307,10 @@
 }
 
 type ThirdPartyRequirementsTarget struct {
-	Value *ThirdPartyRequirements
+	Value                 *ThirdPartyRequirements
+	reportServerTarget    vdl.BoolTarget
+	reportMethodTarget    vdl.BoolTarget
+	reportArgumentsTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -303,14 +324,17 @@
 func (t *ThirdPartyRequirementsTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "ReportServer":
-		val, err := &vdl.BoolTarget{Value: &t.Value.ReportServer}, error(nil)
-		return nil, val, err
+		t.reportServerTarget.Value = &t.Value.ReportServer
+		target, err := &t.reportServerTarget, error(nil)
+		return nil, target, err
 	case "ReportMethod":
-		val, err := &vdl.BoolTarget{Value: &t.Value.ReportMethod}, error(nil)
-		return nil, val, err
+		t.reportMethodTarget.Value = &t.Value.ReportMethod
+		target, err := &t.reportMethodTarget, error(nil)
+		return nil, target, err
 	case "ReportArguments":
-		val, err := &vdl.BoolTarget{Value: &t.Value.ReportArguments}, error(nil)
-		return nil, val, err
+		t.reportArgumentsTarget.Value = &t.Value.ReportArguments
+		target, err := &t.reportArgumentsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_ThirdPartyRequirements)
 	}
@@ -415,7 +439,10 @@
 }
 
 type publicKeyDischargeTarget struct {
-	Value *publicKeyDischarge
+	Value                    *publicKeyDischarge
+	thirdPartyCaveatIdTarget vdl.StringTarget
+	caveatsTarget            unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657dTarget
+	signatureTarget          SignatureTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -429,14 +456,17 @@
 func (t *publicKeyDischargeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "ThirdPartyCaveatId":
-		val, err := &vdl.StringTarget{Value: &t.Value.ThirdPartyCaveatId}, error(nil)
-		return nil, val, err
+		t.thirdPartyCaveatIdTarget.Value = &t.Value.ThirdPartyCaveatId
+		target, err := &t.thirdPartyCaveatIdTarget, error(nil)
+		return nil, target, err
 	case "Caveats":
-		val, err := &unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d_Target{Value: &t.Value.Caveats}, error(nil)
-		return nil, val, err
+		t.caveatsTarget.Value = &t.Value.Caveats
+		target, err := &t.caveatsTarget, error(nil)
+		return nil, target, err
 	case "Signature":
-		val, err := &SignatureTarget{Value: &t.Value.Signature}, error(nil)
-		return nil, val, err
+		t.signatureTarget.Value = &t.Value.Signature
+		target, err := &t.signatureTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_publicKeyDischarge)
 	}
@@ -450,7 +480,11 @@
 }
 
 type SignatureTarget struct {
-	Value *Signature
+	Value         *Signature
+	purposeTarget vdl.BytesTarget
+	hashTarget    HashTarget
+	rTarget       vdl.BytesTarget
+	sTarget       vdl.BytesTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -464,17 +498,21 @@
 func (t *SignatureTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Purpose":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Purpose}, error(nil)
-		return nil, val, err
+		t.purposeTarget.Value = &t.Value.Purpose
+		target, err := &t.purposeTarget, error(nil)
+		return nil, target, err
 	case "Hash":
-		val, err := &HashTarget{Value: &t.Value.Hash}, error(nil)
-		return nil, val, err
+		t.hashTarget.Value = &t.Value.Hash
+		target, err := &t.hashTarget, error(nil)
+		return nil, target, err
 	case "R":
-		val, err := &vdl.BytesTarget{Value: &t.Value.R}, error(nil)
-		return nil, val, err
+		t.rTarget.Value = &t.Value.R
+		target, err := &t.rTarget, error(nil)
+		return nil, target, err
 	case "S":
-		val, err := &vdl.BytesTarget{Value: &t.Value.S}, error(nil)
-		return nil, val, err
+		t.sTarget.Value = &t.Value.S
+		target, err := &t.sTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_Signature)
 	}
@@ -844,7 +882,10 @@
 }
 
 type DischargeImpetusTarget struct {
-	Value *DischargeImpetus
+	Value           *DischargeImpetus
+	serverTarget    unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target
+	methodTarget    vdl.StringTarget
+	argumentsTarget unnamed_5b5d616e79Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -858,14 +899,17 @@
 func (t *DischargeImpetusTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Server":
-		val, err := &unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target{Value: &t.Value.Server}, error(nil)
-		return nil, val, err
+		t.serverTarget.Value = &t.Value.Server
+		target, err := &t.serverTarget, error(nil)
+		return nil, target, err
 	case "Method":
-		val, err := &vdl.StringTarget{Value: &t.Value.Method}, error(nil)
-		return nil, val, err
+		t.methodTarget.Value = &t.Value.Method
+		target, err := &t.methodTarget, error(nil)
+		return nil, target, err
 	case "Arguments":
-		val, err := &unnamed_5b5d616e79_Target{Value: &t.Value.Arguments}, error(nil)
-		return nil, val, err
+		t.argumentsTarget.Value = &t.Value.Arguments
+		target, err := &t.argumentsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_DischargeImpetus)
 	}
@@ -878,13 +922,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target struct {
-	Value *[]BlessingPattern
+// []BlessingPattern
+type unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target struct {
+	Value      *[]BlessingPattern
+	elemTarget BlessingPatternTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType7) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType7)
 	}
@@ -895,24 +941,28 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &BlessingPatternTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e426c657373696e675061747465726e20737472696e67Target) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
-type unnamed_5b5d616e79_Target struct {
+// []*vom.RawBytes
+type unnamed_5b5d616e79Target struct {
 	Value *[]*vom.RawBytes
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d616e79_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d616e79Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType8) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType8)
 	}
@@ -923,13 +973,14 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d616e79_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+func (t *unnamed_5b5d616e79Target) StartElem(index int) (elem vdl.Target, _ error) {
+	target, err := vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+	return target, err
 }
-func (t *unnamed_5b5d616e79_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d616e79Target) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d616e79_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d616e79Target) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -1041,7 +1092,11 @@
 }
 
 type CertificateTarget struct {
-	Value *Certificate
+	Value           *Certificate
+	extensionTarget vdl.StringTarget
+	publicKeyTarget vdl.BytesTarget
+	caveatsTarget   unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657dTarget
+	signatureTarget SignatureTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1055,17 +1110,21 @@
 func (t *CertificateTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Extension":
-		val, err := &vdl.StringTarget{Value: &t.Value.Extension}, error(nil)
-		return nil, val, err
+		t.extensionTarget.Value = &t.Value.Extension
+		target, err := &t.extensionTarget, error(nil)
+		return nil, target, err
 	case "PublicKey":
-		val, err := &vdl.BytesTarget{Value: &t.Value.PublicKey}, error(nil)
-		return nil, val, err
+		t.publicKeyTarget.Value = &t.Value.PublicKey
+		target, err := &t.publicKeyTarget, error(nil)
+		return nil, target, err
 	case "Caveats":
-		val, err := &unnamed_5b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d_Target{Value: &t.Value.Caveats}, error(nil)
-		return nil, val, err
+		t.caveatsTarget.Value = &t.Value.Caveats
+		target, err := &t.caveatsTarget, error(nil)
+		return nil, target, err
 	case "Signature":
-		val, err := &SignatureTarget{Value: &t.Value.Signature}, error(nil)
-		return nil, val, err
+		t.signatureTarget.Value = &t.Value.Signature
+		target, err := &t.signatureTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_Certificate)
 	}
@@ -1143,7 +1202,9 @@
 }
 
 type CaveatDescriptorTarget struct {
-	Value *CaveatDescriptor
+	Value           *CaveatDescriptor
+	idTarget        uniqueid.IdTarget
+	paramTypeTarget vdl.TypeObjectTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1157,11 +1218,13 @@
 func (t *CaveatDescriptorTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Id":
-		val, err := &uniqueid.IdTarget{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "ParamType":
-		val, err := &vdl.TypeObjectTarget{Value: &t.Value.ParamType}, error(nil)
-		return nil, val, err
+		t.paramTypeTarget.Value = &t.Value.ParamType
+		target, err := &t.paramTypeTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_CaveatDescriptor)
 	}
@@ -1321,8 +1384,9 @@
 }
 
 type WireBlessingsTarget struct {
-	Value     *Blessings
-	wireValue WireBlessings
+	Value                   *Blessings
+	wireValue               WireBlessings
+	certificateChainsTarget unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1336,8 +1400,9 @@
 func (t *WireBlessingsTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "CertificateChains":
-		val, err := &unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target{Value: &t.wireValue.CertificateChains}, error(nil)
-		return nil, val, err
+		t.certificateChainsTarget.Value = &t.wireValue.CertificateChains
+		target, err := &t.certificateChainsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_WireBlessings)
 	}
@@ -1353,13 +1418,15 @@
 	return nil
 }
 
-type unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target struct {
-	Value *[][]Certificate
+// [][]Certificate
+type unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget struct {
+	Value      *[][]Certificate
+	elemTarget unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType13) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType13)
 	}
@@ -1370,24 +1437,28 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target struct {
-	Value *[]Certificate
+// []Certificate
+type unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget struct {
+	Value      *[]Certificate
+	elemTarget CertificateTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType14) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType14)
 	}
@@ -1398,13 +1469,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &CertificateTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f73656375726974792e4365727469666963617465207374727563747b457874656e73696f6e20737472696e673b5075626c69634b6579205b5d627974653b43617665617473205b5d762e696f2f7632332f73656375726974792e436176656174207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172616d566f6d205b5d627974657d3b5369676e617475726520762e696f2f7632332f73656375726974792e5369676e6174757265207374727563747b507572706f7365205b5d627974653b4861736820762e696f2f7632332f73656375726974792e4861736820737472696e673b52205b5d627974653b53205b5d627974657d7dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -1536,7 +1609,9 @@
 }
 
 type RejectedBlessingTarget struct {
-	Value *RejectedBlessing
+	Value          *RejectedBlessing
+	blessingTarget vdl.StringTarget
+	errTarget      verror.ErrorTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1550,11 +1625,13 @@
 func (t *RejectedBlessingTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Blessing":
-		val, err := &vdl.StringTarget{Value: &t.Value.Blessing}, error(nil)
-		return nil, val, err
+		t.blessingTarget.Value = &t.Value.Blessing
+		target, err := &t.blessingTarget, error(nil)
+		return nil, target, err
 	case "Err":
-		val, err := &verror.ErrorTarget{Value: &t.Value.Err}, error(nil)
-		return nil, val, err
+		t.errTarget.Value = &t.Value.Err
+		target, err := &t.errTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_security_RejectedBlessing)
 	}
diff --git a/services/appcycle/appcycle.vdl.go b/services/appcycle/appcycle.vdl.go
index 8bd535a..3eb4ae2 100644
--- a/services/appcycle/appcycle.vdl.go
+++ b/services/appcycle/appcycle.vdl.go
@@ -81,7 +81,9 @@
 }
 
 type TaskTarget struct {
-	Value *Task
+	Value          *Task
+	progressTarget vdl.Int32Target
+	goalTarget     vdl.Int32Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -95,11 +97,13 @@
 func (t *TaskTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Progress":
-		val, err := &vdl.Int32Target{Value: &t.Value.Progress}, error(nil)
-		return nil, val, err
+		t.progressTarget.Value = &t.Value.Progress
+		target, err := &t.progressTarget, error(nil)
+		return nil, target, err
 	case "Goal":
-		val, err := &vdl.Int32Target{Value: &t.Value.Goal}, error(nil)
-		return nil, val, err
+		t.goalTarget.Value = &t.Value.Goal
+		target, err := &t.goalTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_appcycle_Task)
 	}
diff --git a/services/application/application.vdl.go b/services/application/application.vdl.go
index af8cfa5..622cda7 100644
--- a/services/application/application.vdl.go
+++ b/services/application/application.vdl.go
@@ -222,7 +222,15 @@
 }
 
 type EnvelopeTarget struct {
-	Value *Envelope
+	Value                   *Envelope
+	titleTarget             vdl.StringTarget
+	argsTarget              vdl.StringSliceTarget
+	binaryTarget            SignedFileTarget
+	publisherTarget         security.WireBlessingsTarget
+	envTarget               vdl.StringSliceTarget
+	packagesTarget          PackagesTarget
+	restartsTarget          vdl.Int32Target
+	restartTimeWindowTarget time_2.DurationTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -236,29 +244,37 @@
 func (t *EnvelopeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Title":
-		val, err := &vdl.StringTarget{Value: &t.Value.Title}, error(nil)
-		return nil, val, err
+		t.titleTarget.Value = &t.Value.Title
+		target, err := &t.titleTarget, error(nil)
+		return nil, target, err
 	case "Args":
-		val, err := &vdl.StringSliceTarget{Value: &t.Value.Args}, error(nil)
-		return nil, val, err
+		t.argsTarget.Value = &t.Value.Args
+		target, err := &t.argsTarget, error(nil)
+		return nil, target, err
 	case "Binary":
-		val, err := &SignedFileTarget{Value: &t.Value.Binary}, error(nil)
-		return nil, val, err
+		t.binaryTarget.Value = &t.Value.Binary
+		target, err := &t.binaryTarget, error(nil)
+		return nil, target, err
 	case "Publisher":
-		val, err := &security.WireBlessingsTarget{Value: &t.Value.Publisher}, error(nil)
-		return nil, val, err
+		t.publisherTarget.Value = &t.Value.Publisher
+		target, err := &t.publisherTarget, error(nil)
+		return nil, target, err
 	case "Env":
-		val, err := &vdl.StringSliceTarget{Value: &t.Value.Env}, error(nil)
-		return nil, val, err
+		t.envTarget.Value = &t.Value.Env
+		target, err := &t.envTarget, error(nil)
+		return nil, target, err
 	case "Packages":
-		val, err := &PackagesTarget{Value: &t.Value.Packages}, error(nil)
-		return nil, val, err
+		t.packagesTarget.Value = &t.Value.Packages
+		target, err := &t.packagesTarget, error(nil)
+		return nil, target, err
 	case "Restarts":
-		val, err := &vdl.Int32Target{Value: &t.Value.Restarts}, error(nil)
-		return nil, val, err
+		t.restartsTarget.Value = &t.Value.Restarts
+		target, err := &t.restartsTarget, error(nil)
+		return nil, target, err
 	case "RestartTimeWindow":
-		val, err := &time_2.DurationTarget{Value: &t.Value.RestartTimeWindow}, error(nil)
-		return nil, val, err
+		t.restartTimeWindowTarget.Value = &t.Value.RestartTimeWindow
+		target, err := &t.restartTimeWindowTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_application_Envelope)
 	}
@@ -272,7 +288,9 @@
 }
 
 type SignedFileTarget struct {
-	Value *SignedFile
+	Value           *SignedFile
+	fileTarget      vdl.StringTarget
+	signatureTarget security.SignatureTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -286,11 +304,13 @@
 func (t *SignedFileTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "File":
-		val, err := &vdl.StringTarget{Value: &t.Value.File}, error(nil)
-		return nil, val, err
+		t.fileTarget.Value = &t.Value.File
+		target, err := &t.fileTarget, error(nil)
+		return nil, target, err
 	case "Signature":
-		val, err := &security.SignatureTarget{Value: &t.Value.Signature}, error(nil)
-		return nil, val, err
+		t.signatureTarget.Value = &t.Value.Signature
+		target, err := &t.signatureTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_application_SignedFile)
 	}
@@ -304,9 +324,11 @@
 }
 
 type PackagesTarget struct {
-	Value    *Packages
-	currKey  string
-	currElem SignedFile
+	Value      *Packages
+	currKey    string
+	currElem   SignedFile
+	keyTarget  vdl.StringTarget
+	elemTarget SignedFileTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -320,11 +342,15 @@
 }
 func (t *PackagesTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *PackagesTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = SignedFile{}
-	return &SignedFileTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *PackagesTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
diff --git a/services/binary/binary.vdl.go b/services/binary/binary.vdl.go
index 0a32583..1876b70 100644
--- a/services/binary/binary.vdl.go
+++ b/services/binary/binary.vdl.go
@@ -108,7 +108,9 @@
 }
 
 type DescriptionTarget struct {
-	Value *Description
+	Value          *Description
+	nameTarget     vdl.StringTarget
+	profilesTarget unnamed_6d61705b737472696e675d626f6f6cTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -122,11 +124,13 @@
 func (t *DescriptionTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Profiles":
-		val, err := &unnamed_6d61705b737472696e675d626f6f6c_Target{Value: &t.Value.Profiles}, error(nil)
-		return nil, val, err
+		t.profilesTarget.Value = &t.Value.Profiles
+		target, err := &t.profilesTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_binary_Description)
 	}
@@ -139,34 +143,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d626f6f6c_Target struct {
-	Value    *map[string]bool
-	currKey  string
-	currElem bool
+// map[string]bool
+type unnamed_6d61705b737472696e675d626f6f6cTarget struct {
+	Value      *map[string]bool
+	currKey    string
+	currElem   bool
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d626f6f6c_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d626f6f6cTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType1) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType1)
 	}
 	*t.Value = make(map[string]bool)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d626f6f6c_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d626f6f6cTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d626f6f6c_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d626f6f6cTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = false
-	return &vdl.BoolTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d626f6f6c_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d626f6f6cTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d626f6f6c_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d626f6f6cTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -231,7 +242,9 @@
 }
 
 type PartInfoTarget struct {
-	Value *PartInfo
+	Value          *PartInfo
+	checksumTarget vdl.StringTarget
+	sizeTarget     vdl.Int64Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -245,11 +258,13 @@
 func (t *PartInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Checksum":
-		val, err := &vdl.StringTarget{Value: &t.Value.Checksum}, error(nil)
-		return nil, val, err
+		t.checksumTarget.Value = &t.Value.Checksum
+		target, err := &t.checksumTarget, error(nil)
+		return nil, target, err
 	case "Size":
-		val, err := &vdl.Int64Target{Value: &t.Value.Size}, error(nil)
-		return nil, val, err
+		t.sizeTarget.Value = &t.Value.Size
+		target, err := &t.sizeTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_binary_PartInfo)
 	}
diff --git a/services/build/build.vdl.go b/services/build/build.vdl.go
index 0e9ac6d..33db174 100644
--- a/services/build/build.vdl.go
+++ b/services/build/build.vdl.go
@@ -346,7 +346,9 @@
 }
 
 type FileTarget struct {
-	Value *File
+	Value          *File
+	nameTarget     vdl.StringTarget
+	contentsTarget vdl.BytesTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -360,11 +362,13 @@
 func (t *FileTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Contents":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Contents}, error(nil)
-		return nil, val, err
+		t.contentsTarget.Value = &t.Value.Contents
+		target, err := &t.contentsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_build_File)
 	}
diff --git a/services/device/device.vdl.go b/services/device/device.vdl.go
index 027bfef..0a875db 100644
--- a/services/device/device.vdl.go
+++ b/services/device/device.vdl.go
@@ -69,9 +69,11 @@
 }
 
 type ConfigTarget struct {
-	Value    *Config
-	currKey  string
-	currElem string
+	Value      *Config
+	currKey    string
+	currElem   string
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -85,11 +87,15 @@
 }
 func (t *ConfigTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *ConfigTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *ConfigTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -483,7 +489,9 @@
 }
 
 type InstallationStatusTarget struct {
-	Value *InstallationStatus
+	Value         *InstallationStatus
+	stateTarget   InstallationStateTarget
+	versionTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -497,11 +505,13 @@
 func (t *InstallationStatusTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "State":
-		val, err := &InstallationStateTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Version":
-		val, err := &vdl.StringTarget{Value: &t.Value.Version}, error(nil)
-		return nil, val, err
+		t.versionTarget.Value = &t.Value.Version
+		target, err := &t.versionTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_device_InstallationStatus)
 	}
@@ -571,7 +581,9 @@
 }
 
 type InstanceStatusTarget struct {
-	Value *InstanceStatus
+	Value         *InstanceStatus
+	stateTarget   InstanceStateTarget
+	versionTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -585,11 +597,13 @@
 func (t *InstanceStatusTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "State":
-		val, err := &InstanceStateTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Version":
-		val, err := &vdl.StringTarget{Value: &t.Value.Version}, error(nil)
-		return nil, val, err
+		t.versionTarget.Value = &t.Value.Version
+		target, err := &t.versionTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_device_InstanceStatus)
 	}
@@ -659,7 +673,9 @@
 }
 
 type DeviceStatusTarget struct {
-	Value *DeviceStatus
+	Value         *DeviceStatus
+	stateTarget   InstanceStateTarget
+	versionTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -673,11 +689,13 @@
 func (t *DeviceStatusTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "State":
-		val, err := &InstanceStateTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Version":
-		val, err := &vdl.StringTarget{Value: &t.Value.Version}, error(nil)
-		return nil, val, err
+		t.versionTarget.Value = &t.Value.Version
+		target, err := &t.versionTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_device_DeviceStatus)
 	}
@@ -889,7 +907,8 @@
 }
 
 type DescriptionTarget struct {
-	Value *Description
+	Value          *Description
+	profilesTarget unnamed_7365745b737472696e675dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -903,8 +922,9 @@
 func (t *DescriptionTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Profiles":
-		val, err := &unnamed_7365745b737472696e675d_Target{Value: &t.Value.Profiles}, error(nil)
-		return nil, val, err
+		t.profilesTarget.Value = &t.Value.Profiles
+		target, err := &t.profilesTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_device_Description)
 	}
@@ -917,29 +937,33 @@
 	return nil
 }
 
-type unnamed_7365745b737472696e675d_Target struct {
-	Value   *map[string]struct{}
-	currKey string
+// map[string]struct{}
+type unnamed_7365745b737472696e675dTarget struct {
+	Value     *map[string]struct{}
+	currKey   string
+	keyTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b737472696e675d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b737472696e675dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType5) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType5)
 	}
 	*t.Value = make(map[string]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b737472696e675d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b737472696e675dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b737472696e675d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b737472696e675dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b737472696e675d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b737472696e675dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -1003,7 +1027,9 @@
 }
 
 type AssociationTarget struct {
-	Value *Association
+	Value              *Association
+	identityNameTarget vdl.StringTarget
+	accountNameTarget  vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1017,11 +1043,13 @@
 func (t *AssociationTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "IdentityName":
-		val, err := &vdl.StringTarget{Value: &t.Value.IdentityName}, error(nil)
-		return nil, val, err
+		t.identityNameTarget.Value = &t.Value.IdentityName
+		target, err := &t.identityNameTarget, error(nil)
+		return nil, target, err
 	case "AccountName":
-		val, err := &vdl.StringTarget{Value: &t.Value.AccountName}, error(nil)
-		return nil, val, err
+		t.accountNameTarget.Value = &t.Value.AccountName
+		target, err := &t.accountNameTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_device_Association)
 	}
diff --git a/services/groups/groups.vdl.go b/services/groups/groups.vdl.go
index 3591d61..49773f6 100644
--- a/services/groups/groups.vdl.go
+++ b/services/groups/groups.vdl.go
@@ -170,7 +170,8 @@
 }
 
 type GetResponseTarget struct {
-	Value *GetResponse
+	Value         *GetResponse
+	entriesTarget unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -184,8 +185,9 @@
 func (t *GetResponseTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Entries":
-		val, err := &unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675d_Target{Value: &t.Value.Entries}, error(nil)
-		return nil, val, err
+		t.entriesTarget.Value = &t.Value.Entries
+		target, err := &t.entriesTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_groups_GetResponse)
 	}
@@ -198,29 +200,33 @@
 	return nil
 }
 
-type unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675d_Target struct {
-	Value   *map[BlessingPatternChunk]struct{}
-	currKey BlessingPatternChunk
+// map[BlessingPatternChunk]struct{}
+type unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675dTarget struct {
+	Value     *map[BlessingPatternChunk]struct{}
+	currKey   BlessingPatternChunk
+	keyTarget BlessingPatternChunkTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType2) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType2)
 	}
 	*t.Value = make(map[BlessingPatternChunk]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = BlessingPatternChunk("")
-	return &BlessingPatternChunkTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b762e696f2f7632332f73657276696365732f67726f7570732e426c657373696e675061747465726e4368756e6b20737472696e675dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -368,7 +374,9 @@
 }
 
 type ApproximationTarget struct {
-	Value *Approximation
+	Value         *Approximation
+	reasonTarget  vdl.StringTarget
+	detailsTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -382,11 +390,13 @@
 func (t *ApproximationTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Reason":
-		val, err := &vdl.StringTarget{Value: &t.Value.Reason}, error(nil)
-		return nil, val, err
+		t.reasonTarget.Value = &t.Value.Reason
+		target, err := &t.reasonTarget, error(nil)
+		return nil, target, err
 	case "Details":
-		val, err := &vdl.StringTarget{Value: &t.Value.Details}, error(nil)
-		return nil, val, err
+		t.detailsTarget.Value = &t.Value.Details
+		target, err := &t.detailsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_groups_Approximation)
 	}
diff --git a/services/logreader/logreader.vdl.go b/services/logreader/logreader.vdl.go
index b7e5e8f..914709f 100644
--- a/services/logreader/logreader.vdl.go
+++ b/services/logreader/logreader.vdl.go
@@ -75,7 +75,9 @@
 }
 
 type LogEntryTarget struct {
-	Value *LogEntry
+	Value          *LogEntry
+	positionTarget vdl.Int64Target
+	lineTarget     vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -89,11 +91,13 @@
 func (t *LogEntryTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Position":
-		val, err := &vdl.Int64Target{Value: &t.Value.Position}, error(nil)
-		return nil, val, err
+		t.positionTarget.Value = &t.Value.Position
+		target, err := &t.positionTarget, error(nil)
+		return nil, target, err
 	case "Line":
-		val, err := &vdl.StringTarget{Value: &t.Value.Line}, error(nil)
-		return nil, val, err
+		t.lineTarget.Value = &t.Value.Line
+		target, err := &t.lineTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_logreader_LogEntry)
 	}
diff --git a/services/repository/repository.vdl.go b/services/repository/repository.vdl.go
index b14eee9..08164ab 100644
--- a/services/repository/repository.vdl.go
+++ b/services/repository/repository.vdl.go
@@ -78,7 +78,9 @@
 }
 
 type MediaInfoTarget struct {
-	Value *MediaInfo
+	Value          *MediaInfo
+	typeTarget     vdl.StringTarget
+	encodingTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -92,11 +94,13 @@
 func (t *MediaInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Type":
-		val, err := &vdl.StringTarget{Value: &t.Value.Type}, error(nil)
-		return nil, val, err
+		t.typeTarget.Value = &t.Value.Type
+		target, err := &t.typeTarget, error(nil)
+		return nil, target, err
 	case "Encoding":
-		val, err := &vdl.StringTarget{Value: &t.Value.Encoding}, error(nil)
-		return nil, val, err
+		t.encodingTarget.Value = &t.Value.Encoding
+		target, err := &t.encodingTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_repository_MediaInfo)
 	}
diff --git a/services/syncbase/nosql/nosql.vdl.go b/services/syncbase/nosql/nosql.vdl.go
index 4c4ba59..f2a0afb 100644
--- a/services/syncbase/nosql/nosql.vdl.go
+++ b/services/syncbase/nosql/nosql.vdl.go
@@ -94,7 +94,9 @@
 }
 
 type BatchOptionsTarget struct {
-	Value *BatchOptions
+	Value          *BatchOptions
+	hintTarget     vdl.StringTarget
+	readOnlyTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -108,11 +110,13 @@
 func (t *BatchOptionsTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Hint":
-		val, err := &vdl.StringTarget{Value: &t.Value.Hint}, error(nil)
-		return nil, val, err
+		t.hintTarget.Value = &t.Value.Hint
+		target, err := &t.hintTarget, error(nil)
+		return nil, target, err
 	case "ReadOnly":
-		val, err := &vdl.BoolTarget{Value: &t.Value.ReadOnly}, error(nil)
-		return nil, val, err
+		t.readOnlyTarget.Value = &t.Value.ReadOnly
+		target, err := &t.readOnlyTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_BatchOptions)
 	}
@@ -181,7 +185,9 @@
 }
 
 type PrefixPermissionsTarget struct {
-	Value *PrefixPermissions
+	Value        *PrefixPermissions
+	prefixTarget vdl.StringTarget
+	permsTarget  access.PermissionsTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -195,11 +201,13 @@
 func (t *PrefixPermissionsTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Prefix":
-		val, err := &vdl.StringTarget{Value: &t.Value.Prefix}, error(nil)
-		return nil, val, err
+		t.prefixTarget.Value = &t.Value.Prefix
+		target, err := &t.prefixTarget, error(nil)
+		return nil, target, err
 	case "Perms":
-		val, err := &access.PermissionsTarget{Value: &t.Value.Perms}, error(nil)
-		return nil, val, err
+		t.permsTarget.Value = &t.Value.Perms
+		target, err := &t.permsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_PrefixPermissions)
 	}
@@ -268,7 +276,9 @@
 }
 
 type KeyValueTarget struct {
-	Value *KeyValue
+	Value       *KeyValue
+	keyTarget   vdl.StringTarget
+	valueTarget vdl.BytesTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -282,11 +292,13 @@
 func (t *KeyValueTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key":
-		val, err := &vdl.StringTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	case "Value":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Value}, error(nil)
-		return nil, val, err
+		t.valueTarget.Value = &t.Value.Value
+		target, err := &t.valueTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_KeyValue)
 	}
@@ -354,7 +366,9 @@
 }
 
 type TableRowTarget struct {
-	Value *TableRow
+	Value           *TableRow
+	tableNameTarget vdl.StringTarget
+	rowTarget       vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -368,11 +382,13 @@
 func (t *TableRowTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "TableName":
-		val, err := &vdl.StringTarget{Value: &t.Value.TableName}, error(nil)
-		return nil, val, err
+		t.tableNameTarget.Value = &t.Value.TableName
+		target, err := &t.tableNameTarget, error(nil)
+		return nil, target, err
 	case "Row":
-		val, err := &vdl.StringTarget{Value: &t.Value.Row}, error(nil)
-		return nil, val, err
+		t.rowTarget.Value = &t.Value.Row
+		target, err := &t.rowTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_TableRow)
 	}
@@ -529,7 +545,12 @@
 }
 
 type SyncgroupSpecTarget struct {
-	Value *SyncgroupSpec
+	Value             *SyncgroupSpec
+	descriptionTarget vdl.StringTarget
+	permsTarget       access.PermissionsTarget
+	prefixesTarget    unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677dTarget
+	mountTablesTarget vdl.StringSliceTarget
+	isPrivateTarget   vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -543,20 +564,25 @@
 func (t *SyncgroupSpecTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Description":
-		val, err := &vdl.StringTarget{Value: &t.Value.Description}, error(nil)
-		return nil, val, err
+		t.descriptionTarget.Value = &t.Value.Description
+		target, err := &t.descriptionTarget, error(nil)
+		return nil, target, err
 	case "Perms":
-		val, err := &access.PermissionsTarget{Value: &t.Value.Perms}, error(nil)
-		return nil, val, err
+		t.permsTarget.Value = &t.Value.Perms
+		target, err := &t.permsTarget, error(nil)
+		return nil, target, err
 	case "Prefixes":
-		val, err := &unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677d_Target{Value: &t.Value.Prefixes}, error(nil)
-		return nil, val, err
+		t.prefixesTarget.Value = &t.Value.Prefixes
+		target, err := &t.prefixesTarget, error(nil)
+		return nil, target, err
 	case "MountTables":
-		val, err := &vdl.StringSliceTarget{Value: &t.Value.MountTables}, error(nil)
-		return nil, val, err
+		t.mountTablesTarget.Value = &t.Value.MountTables
+		target, err := &t.mountTablesTarget, error(nil)
+		return nil, target, err
 	case "IsPrivate":
-		val, err := &vdl.BoolTarget{Value: &t.Value.IsPrivate}, error(nil)
-		return nil, val, err
+		t.isPrivateTarget.Value = &t.Value.IsPrivate
+		target, err := &t.isPrivateTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_SyncgroupSpec)
 	}
@@ -569,13 +595,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677d_Target struct {
-	Value *[]TableRow
+// []TableRow
+type unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677dTarget struct {
+	Value      *[]TableRow
+	elemTarget TableRowTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType6) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType6)
 	}
@@ -586,13 +614,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &TableRowTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5461626c65526f77207374727563747b5461626c654e616d6520737472696e673b526f7720737472696e677dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -652,7 +682,9 @@
 }
 
 type SyncgroupMemberInfoTarget struct {
-	Value *SyncgroupMemberInfo
+	Value              *SyncgroupMemberInfo
+	syncPriorityTarget vdl.ByteTarget
+	isServerTarget     vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -666,11 +698,13 @@
 func (t *SyncgroupMemberInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "SyncPriority":
-		val, err := &vdl.ByteTarget{Value: &t.Value.SyncPriority}, error(nil)
-		return nil, val, err
+		t.syncPriorityTarget.Value = &t.Value.SyncPriority
+		target, err := &t.syncPriorityTarget, error(nil)
+		return nil, target, err
 	case "IsServer":
-		val, err := &vdl.BoolTarget{Value: &t.Value.IsServer}, error(nil)
-		return nil, val, err
+		t.isServerTarget.Value = &t.Value.IsServer
+		target, err := &t.isServerTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_SyncgroupMemberInfo)
 	}
@@ -849,6 +883,8 @@
 
 type ConflictInfoTarget struct {
 	Value *ConflictInfo
+
+	continuedTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -862,11 +898,12 @@
 func (t *ConflictInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Data":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Data))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Data))
+		return nil, target, err
 	case "Continued":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Continued}, error(nil)
-		return nil, val, err
+		t.continuedTarget.Value = &t.Value.Continued
+		target, err := &t.continuedTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_ConflictInfo)
 	}
@@ -1049,7 +1086,10 @@
 }
 
 type BatchInfoTarget struct {
-	Value *BatchInfo
+	Value        *BatchInfo
+	idTarget     vdl.Uint64Target
+	hintTarget   vdl.StringTarget
+	sourceTarget BatchSourceTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1063,14 +1103,17 @@
 func (t *BatchInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Id":
-		val, err := &vdl.Uint64Target{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "Hint":
-		val, err := &vdl.StringTarget{Value: &t.Value.Hint}, error(nil)
-		return nil, val, err
+		t.hintTarget.Value = &t.Value.Hint
+		target, err := &t.hintTarget, error(nil)
+		return nil, target, err
 	case "Source":
-		val, err := &BatchSourceTarget{Value: &t.Value.Source}, error(nil)
-		return nil, val, err
+		t.sourceTarget.Value = &t.Value.Source
+		target, err := &t.sourceTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_BatchInfo)
 	}
@@ -1248,6 +1291,8 @@
 
 type RowInfoTarget struct {
 	Value *RowInfo
+
+	batchIdsTarget unnamed_5b5d75696e743634Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1261,11 +1306,12 @@
 func (t *RowInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Op":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Op))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Op))
+		return nil, target, err
 	case "BatchIds":
-		val, err := &unnamed_5b5d75696e743634_Target{Value: &t.Value.BatchIds}, error(nil)
-		return nil, val, err
+		t.batchIdsTarget.Value = &t.Value.BatchIds
+		target, err := &t.batchIdsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_RowInfo)
 	}
@@ -1278,13 +1324,15 @@
 	return nil
 }
 
-type unnamed_5b5d75696e743634_Target struct {
-	Value *[]uint64
+// []uint64
+type unnamed_5b5d75696e743634Target struct {
+	Value      *[]uint64
+	elemTarget vdl.Uint64Target
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d75696e743634_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d75696e743634Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType12) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType12)
 	}
@@ -1295,13 +1343,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d75696e743634_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.Uint64Target{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d75696e743634Target) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d75696e743634_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d75696e743634Target) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d75696e743634_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d75696e743634Target) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -1553,7 +1603,11 @@
 }
 
 type RowOpTarget struct {
-	Value *RowOp
+	Value               *RowOp
+	keyTarget           vdl.StringTarget
+	localValueTarget    unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7dTarget
+	remoteValueTarget   unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7dTarget
+	ancestorValueTarget unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1567,17 +1621,21 @@
 func (t *RowOpTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key":
-		val, err := &vdl.StringTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	case "LocalValue":
-		val, err := &unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7d_Target{Value: &t.Value.LocalValue}, error(nil)
-		return nil, val, err
+		t.localValueTarget.Value = &t.Value.LocalValue
+		target, err := &t.localValueTarget, error(nil)
+		return nil, target, err
 	case "RemoteValue":
-		val, err := &unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7d_Target{Value: &t.Value.RemoteValue}, error(nil)
-		return nil, val, err
+		t.remoteValueTarget.Value = &t.Value.RemoteValue
+		target, err := &t.remoteValueTarget, error(nil)
+		return nil, target, err
 	case "AncestorValue":
-		val, err := &unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7d_Target{Value: &t.Value.AncestorValue}, error(nil)
-		return nil, val, err
+		t.ancestorValueTarget.Value = &t.Value.AncestorValue
+		target, err := &t.ancestorValueTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_RowOp)
 	}
@@ -1590,34 +1648,40 @@
 	return nil
 }
 
-type unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7d_Target struct {
-	Value **Value
+// Optional Value
+type unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7dTarget struct {
+	Value      **Value
+	elemTarget ValueTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &Value{}
 	}
-	target, err := &ValueTarget{Value: *t.Value}, error(nil)
+	t.elemTarget.Value = *t.Value
+	target, err := &t.elemTarget, error(nil)
 	if err != nil {
 		return nil, err
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
 }
 
 type ValueTarget struct {
-	Value *Value
+	Value         *Value
+	stateTarget   ValueStateTarget
+	bytesTarget   vdl.BytesTarget
+	writeTsTarget time_2.TimeTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1631,14 +1695,17 @@
 func (t *ValueTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "State":
-		val, err := &ValueStateTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Bytes":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Bytes}, error(nil)
-		return nil, val, err
+		t.bytesTarget.Value = &t.Value.Bytes
+		target, err := &t.bytesTarget, error(nil)
+		return nil, target, err
 	case "WriteTs":
-		val, err := &time_2.TimeTarget{Value: &t.Value.WriteTs}, error(nil)
-		return nil, val, err
+		t.writeTsTarget.Value = &t.Value.WriteTs
+		target, err := &t.writeTsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_Value)
 	}
@@ -1733,7 +1800,9 @@
 }
 
 type ScanOpTarget struct {
-	Value *ScanOp
+	Value       *ScanOp
+	startTarget vdl.StringTarget
+	limitTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1747,11 +1816,13 @@
 func (t *ScanOpTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Start":
-		val, err := &vdl.StringTarget{Value: &t.Value.Start}, error(nil)
-		return nil, val, err
+		t.startTarget.Value = &t.Value.Start
+		target, err := &t.startTarget, error(nil)
+		return nil, target, err
 	case "Limit":
-		val, err := &vdl.StringTarget{Value: &t.Value.Limit}, error(nil)
-		return nil, val, err
+		t.limitTarget.Value = &t.Value.Limit
+		target, err := &t.limitTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_ScanOp)
 	}
@@ -2100,7 +2171,11 @@
 }
 
 type ResolutionInfoTarget struct {
-	Value *ResolutionInfo
+	Value           *ResolutionInfo
+	keyTarget       vdl.StringTarget
+	selectionTarget ValueSelectionTarget
+	resultTarget    unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7dTarget
+	continuedTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2114,17 +2189,21 @@
 func (t *ResolutionInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key":
-		val, err := &vdl.StringTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	case "Selection":
-		val, err := &ValueSelectionTarget{Value: &t.Value.Selection}, error(nil)
-		return nil, val, err
+		t.selectionTarget.Value = &t.Value.Selection
+		target, err := &t.selectionTarget, error(nil)
+		return nil, target, err
 	case "Result":
-		val, err := &unnamed_3f762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b4279746573205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d7d_Target{Value: &t.Value.Result}, error(nil)
-		return nil, val, err
+		t.resultTarget.Value = &t.Value.Result
+		target, err := &t.resultTarget, error(nil)
+		return nil, target, err
 	case "Continued":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Continued}, error(nil)
-		return nil, val, err
+		t.continuedTarget.Value = &t.Value.Continued
+		target, err := &t.continuedTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_ResolutionInfo)
 	}
@@ -2197,7 +2276,9 @@
 }
 
 type SchemaMetadataTarget struct {
-	Value *SchemaMetadata
+	Value         *SchemaMetadata
+	versionTarget vdl.Int32Target
+	policyTarget  CrPolicyTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2211,11 +2292,13 @@
 func (t *SchemaMetadataTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Version":
-		val, err := &vdl.Int32Target{Value: &t.Value.Version}, error(nil)
-		return nil, val, err
+		t.versionTarget.Value = &t.Value.Version
+		target, err := &t.versionTarget, error(nil)
+		return nil, target, err
 	case "Policy":
-		val, err := &CrPolicyTarget{Value: &t.Value.Policy}, error(nil)
-		return nil, val, err
+		t.policyTarget.Value = &t.Value.Policy
+		target, err := &t.policyTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_SchemaMetadata)
 	}
@@ -2229,7 +2312,8 @@
 }
 
 type CrPolicyTarget struct {
-	Value *CrPolicy
+	Value       *CrPolicy
+	rulesTarget unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2243,8 +2327,9 @@
 func (t *CrPolicyTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rules":
-		val, err := &unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7d_Target{Value: &t.Value.Rules}, error(nil)
-		return nil, val, err
+		t.rulesTarget.Value = &t.Value.Rules
+		target, err := &t.rulesTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_CrPolicy)
 	}
@@ -2257,13 +2342,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7d_Target struct {
-	Value *[]CrRule
+// []CrRule
+type unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7dTarget struct {
+	Value      *[]CrRule
+	elemTarget CrRuleTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType18) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType18)
 	}
@@ -2274,19 +2361,25 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &CrRuleTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e437252756c65207374727563747b5461626c654e616d6520737472696e673b4b657950726566697820737472696e673b5479706520737472696e673b5265736f6c76657220762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5265736f6c7665725479706520656e756d7b4c61737457696e733b4170705265736f6c7665733b44656665727d7dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
 type CrRuleTarget struct {
-	Value *CrRule
+	Value           *CrRule
+	tableNameTarget vdl.StringTarget
+	keyPrefixTarget vdl.StringTarget
+	typeTarget      vdl.StringTarget
+	resolverTarget  ResolverTypeTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2300,17 +2393,21 @@
 func (t *CrRuleTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "TableName":
-		val, err := &vdl.StringTarget{Value: &t.Value.TableName}, error(nil)
-		return nil, val, err
+		t.tableNameTarget.Value = &t.Value.TableName
+		target, err := &t.tableNameTarget, error(nil)
+		return nil, target, err
 	case "KeyPrefix":
-		val, err := &vdl.StringTarget{Value: &t.Value.KeyPrefix}, error(nil)
-		return nil, val, err
+		t.keyPrefixTarget.Value = &t.Value.KeyPrefix
+		target, err := &t.keyPrefixTarget, error(nil)
+		return nil, target, err
 	case "Type":
-		val, err := &vdl.StringTarget{Value: &t.Value.Type}, error(nil)
-		return nil, val, err
+		t.typeTarget.Value = &t.Value.Type
+		target, err := &t.typeTarget, error(nil)
+		return nil, target, err
 	case "Resolver":
-		val, err := &ResolverTypeTarget{Value: &t.Value.Resolver}, error(nil)
-		return nil, val, err
+		t.resolverTarget.Value = &t.Value.Resolver
+		target, err := &t.resolverTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_CrRule)
 	}
@@ -2673,7 +2770,10 @@
 }
 
 type BlobFetchStatusTarget struct {
-	Value *BlobFetchStatus
+	Value          *BlobFetchStatus
+	stateTarget    BlobFetchStateTarget
+	receivedTarget vdl.Int64Target
+	totalTarget    vdl.Int64Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2687,14 +2787,17 @@
 func (t *BlobFetchStatusTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "State":
-		val, err := &BlobFetchStateTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Received":
-		val, err := &vdl.Int64Target{Value: &t.Value.Received}, error(nil)
-		return nil, val, err
+		t.receivedTarget.Value = &t.Value.Received
+		target, err := &t.receivedTarget, error(nil)
+		return nil, target, err
 	case "Total":
-		val, err := &vdl.Int64Target{Value: &t.Value.Total}, error(nil)
-		return nil, val, err
+		t.totalTarget.Value = &t.Value.Total
+		target, err := &t.totalTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_BlobFetchStatus)
 	}
@@ -2769,7 +2872,9 @@
 }
 
 type StoreChangeTarget struct {
-	Value *StoreChange
+	Value          *StoreChange
+	valueTarget    vdl.BytesTarget
+	fromSyncTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2783,11 +2888,13 @@
 func (t *StoreChangeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Value":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Value}, error(nil)
-		return nil, val, err
+		t.valueTarget.Value = &t.Value.Value
+		target, err := &t.valueTarget, error(nil)
+		return nil, target, err
 	case "FromSync":
-		val, err := &vdl.BoolTarget{Value: &t.Value.FromSync}, error(nil)
-		return nil, val, err
+		t.fromSyncTarget.Value = &t.Value.FromSync
+		target, err := &t.fromSyncTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_nosql_StoreChange)
 	}
diff --git a/services/syncbase/syncbase.vdl.go b/services/syncbase/syncbase.vdl.go
index 2e4c263..5195261 100644
--- a/services/syncbase/syncbase.vdl.go
+++ b/services/syncbase/syncbase.vdl.go
@@ -139,7 +139,12 @@
 }
 
 type DevModeUpdateVClockOptsTarget struct {
-	Value *DevModeUpdateVClockOpts
+	Value               *DevModeUpdateVClockOpts
+	ntpHostTarget       vdl.StringTarget
+	nowTarget           time_2.TimeTarget
+	elapsedTimeTarget   time_2.DurationTarget
+	doNtpUpdateTarget   vdl.BoolTarget
+	doLocalUpdateTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -153,20 +158,25 @@
 func (t *DevModeUpdateVClockOptsTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "NtpHost":
-		val, err := &vdl.StringTarget{Value: &t.Value.NtpHost}, error(nil)
-		return nil, val, err
+		t.ntpHostTarget.Value = &t.Value.NtpHost
+		target, err := &t.ntpHostTarget, error(nil)
+		return nil, target, err
 	case "Now":
-		val, err := &time_2.TimeTarget{Value: &t.Value.Now}, error(nil)
-		return nil, val, err
+		t.nowTarget.Value = &t.Value.Now
+		target, err := &t.nowTarget, error(nil)
+		return nil, target, err
 	case "ElapsedTime":
-		val, err := &time_2.DurationTarget{Value: &t.Value.ElapsedTime}, error(nil)
-		return nil, val, err
+		t.elapsedTimeTarget.Value = &t.Value.ElapsedTime
+		target, err := &t.elapsedTimeTarget, error(nil)
+		return nil, target, err
 	case "DoNtpUpdate":
-		val, err := &vdl.BoolTarget{Value: &t.Value.DoNtpUpdate}, error(nil)
-		return nil, val, err
+		t.doNtpUpdateTarget.Value = &t.Value.DoNtpUpdate
+		target, err := &t.doNtpUpdateTarget, error(nil)
+		return nil, target, err
 	case "DoLocalUpdate":
-		val, err := &vdl.BoolTarget{Value: &t.Value.DoLocalUpdate}, error(nil)
-		return nil, val, err
+		t.doLocalUpdateTarget.Value = &t.Value.DoLocalUpdate
+		target, err := &t.doLocalUpdateTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_syncbase_DevModeUpdateVClockOpts)
 	}
diff --git a/services/watch/watch.vdl.go b/services/watch/watch.vdl.go
index a8a4089..4898787 100644
--- a/services/watch/watch.vdl.go
+++ b/services/watch/watch.vdl.go
@@ -182,7 +182,9 @@
 }
 
 type GlobRequestTarget struct {
-	Value *GlobRequest
+	Value              *GlobRequest
+	patternTarget      vdl.StringTarget
+	resumeMarkerTarget ResumeMarkerTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -196,11 +198,13 @@
 func (t *GlobRequestTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Pattern":
-		val, err := &vdl.StringTarget{Value: &t.Value.Pattern}, error(nil)
-		return nil, val, err
+		t.patternTarget.Value = &t.Value.Pattern
+		target, err := &t.patternTarget, error(nil)
+		return nil, target, err
 	case "ResumeMarker":
-		val, err := &ResumeMarkerTarget{Value: &t.Value.ResumeMarker}, error(nil)
-		return nil, val, err
+		t.resumeMarkerTarget.Value = &t.Value.ResumeMarker
+		target, err := &t.resumeMarkerTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_watch_GlobRequest)
 	}
@@ -395,7 +399,12 @@
 }
 
 type ChangeTarget struct {
-	Value *Change
+	Value       *Change
+	nameTarget  vdl.StringTarget
+	stateTarget vdl.Int32Target
+
+	resumeMarkerTarget ResumeMarkerTarget
+	continuedTarget    vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -409,20 +418,24 @@
 func (t *ChangeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "State":
-		val, err := &vdl.Int32Target{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Value":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Value))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Value))
+		return nil, target, err
 	case "ResumeMarker":
-		val, err := &ResumeMarkerTarget{Value: &t.Value.ResumeMarker}, error(nil)
-		return nil, val, err
+		t.resumeMarkerTarget.Value = &t.Value.ResumeMarker
+		target, err := &t.resumeMarkerTarget, error(nil)
+		return nil, target, err
 	case "Continued":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Continued}, error(nil)
-		return nil, val, err
+		t.continuedTarget.Value = &t.Value.Continued
+		target, err := &t.continuedTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_services_watch_Change)
 	}
diff --git a/syncbase/nosql/nosql.vdl.go b/syncbase/nosql/nosql.vdl.go
index b0c0786..3b7dca5 100644
--- a/syncbase/nosql/nosql.vdl.go
+++ b/syncbase/nosql/nosql.vdl.go
@@ -154,7 +154,11 @@
 }
 
 type ConflictTarget struct {
-	Value *Conflict
+	Value          *Conflict
+	readSetTarget  unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777dTarget
+	writeSetTarget unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777dTarget
+	scanSetTarget  unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7dTarget
+	batchesTarget  unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -168,17 +172,21 @@
 func (t *ConflictTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "ReadSet":
-		val, err := &unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777d_Target{Value: &t.Value.ReadSet}, error(nil)
-		return nil, val, err
+		t.readSetTarget.Value = &t.Value.ReadSet
+		target, err := &t.readSetTarget, error(nil)
+		return nil, target, err
 	case "WriteSet":
-		val, err := &unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777d_Target{Value: &t.Value.WriteSet}, error(nil)
-		return nil, val, err
+		t.writeSetTarget.Value = &t.Value.WriteSet
+		target, err := &t.writeSetTarget, error(nil)
+		return nil, target, err
 	case "ScanSet":
-		val, err := &unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7d_Target{Value: &t.Value.ScanSet}, error(nil)
-		return nil, val, err
+		t.scanSetTarget.Value = &t.Value.ScanSet
+		target, err := &t.scanSetTarget, error(nil)
+		return nil, target, err
 	case "Batches":
-		val, err := &unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7d_Target{Value: &t.Value.Batches}, error(nil)
-		return nil, val, err
+		t.batchesTarget.Value = &t.Value.Batches
+		target, err := &t.batchesTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_Conflict)
 	}
@@ -191,34 +199,39 @@
 	return nil
 }
 
-type unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777d_Target struct {
-	Value **ConflictRowSet
+// Optional ConflictRowSet
+type unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777dTarget struct {
+	Value      **ConflictRowSet
+	elemTarget ConflictRowSetTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &ConflictRowSet{}
 	}
-	target, err := &ConflictRowSetTarget{Value: *t.Value}, error(nil)
+	t.elemTarget.Value = *t.Value
+	target, err := &t.elemTarget, error(nil)
 	if err != nil {
 		return nil, err
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77536574207374727563747b42794b6579206d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d3b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f777dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
 }
 
 type ConflictRowSetTarget struct {
-	Value *ConflictRowSet
+	Value         *ConflictRowSet
+	byKeyTarget   unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget
+	byBatchTarget unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -232,11 +245,13 @@
 func (t *ConflictRowSetTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "ByKey":
-		val, err := &unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target{Value: &t.Value.ByKey}, error(nil)
-		return nil, val, err
+		t.byKeyTarget.Value = &t.Value.ByKey
+		target, err := &t.byKeyTarget, error(nil)
+		return nil, target, err
 	case "ByBatch":
-		val, err := &unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target{Value: &t.Value.ByBatch}, error(nil)
-		return nil, val, err
+		t.byBatchTarget.Value = &t.Value.ByBatch
+		target, err := &t.byBatchTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_ConflictRowSet)
 	}
@@ -249,34 +264,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target struct {
-	Value    *map[string]ConflictRow
-	currKey  string
-	currElem ConflictRow
+// map[string]ConflictRow
+type unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget struct {
+	Value      *map[string]ConflictRow
+	currKey    string
+	currElem   ConflictRow
+	keyTarget  vdl.StringTarget
+	elemTarget ConflictRowTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType5) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType5)
 	}
 	*t.Value = make(map[string]ConflictRow)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = reflect.Zero(reflect.TypeOf(t.currElem)).Interface().(ConflictRow)
-	return &ConflictRowTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -285,7 +307,12 @@
 }
 
 type ConflictRowTarget struct {
-	Value *ConflictRow
+	Value               *ConflictRow
+	keyTarget           vdl.StringTarget
+	localValueTarget    ValueTarget
+	remoteValueTarget   ValueTarget
+	ancestorValueTarget ValueTarget
+	batchIdsTarget      unnamed_5b5d75696e743634Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -299,20 +326,25 @@
 func (t *ConflictRowTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key":
-		val, err := &vdl.StringTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	case "LocalValue":
-		val, err := &ValueTarget{Value: &t.Value.LocalValue}, error(nil)
-		return nil, val, err
+		t.localValueTarget.Value = &t.Value.LocalValue
+		target, err := &t.localValueTarget, error(nil)
+		return nil, target, err
 	case "RemoteValue":
-		val, err := &ValueTarget{Value: &t.Value.RemoteValue}, error(nil)
-		return nil, val, err
+		t.remoteValueTarget.Value = &t.Value.RemoteValue
+		target, err := &t.remoteValueTarget, error(nil)
+		return nil, target, err
 	case "AncestorValue":
-		val, err := &ValueTarget{Value: &t.Value.AncestorValue}, error(nil)
-		return nil, val, err
+		t.ancestorValueTarget.Value = &t.Value.AncestorValue
+		target, err := &t.ancestorValueTarget, error(nil)
+		return nil, target, err
 	case "BatchIds":
-		val, err := &unnamed_5b5d75696e743634_Target{Value: &t.Value.BatchIds}, error(nil)
-		return nil, val, err
+		t.batchIdsTarget.Value = &t.Value.BatchIds
+		target, err := &t.batchIdsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_ConflictRow)
 	}
@@ -326,7 +358,11 @@
 }
 
 type ValueTarget struct {
-	Value *Value
+	Value           *Value
+	stateTarget     nosql.ValueStateTarget
+	valTarget       vdl.BytesTarget
+	writeTsTarget   time_2.TimeTarget
+	selectionTarget nosql.ValueSelectionTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -340,17 +376,21 @@
 func (t *ValueTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "State":
-		val, err := &nosql.ValueStateTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Val":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Val}, error(nil)
-		return nil, val, err
+		t.valTarget.Value = &t.Value.Val
+		target, err := &t.valTarget, error(nil)
+		return nil, target, err
 	case "WriteTs":
-		val, err := &time_2.TimeTarget{Value: &t.Value.WriteTs}, error(nil)
-		return nil, val, err
+		t.writeTsTarget.Value = &t.Value.WriteTs
+		target, err := &t.writeTsTarget, error(nil)
+		return nil, target, err
 	case "Selection":
-		val, err := &nosql.ValueSelectionTarget{Value: &t.Value.Selection}, error(nil)
-		return nil, val, err
+		t.selectionTarget.Value = &t.Value.Selection
+		target, err := &t.selectionTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_Value)
 	}
@@ -363,13 +403,15 @@
 	return nil
 }
 
-type unnamed_5b5d75696e743634_Target struct {
-	Value *[]uint64
+// []uint64
+type unnamed_5b5d75696e743634Target struct {
+	Value      *[]uint64
+	elemTarget vdl.Uint64Target
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d75696e743634_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d75696e743634Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType4) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType4)
 	}
@@ -380,45 +422,54 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d75696e743634_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.Uint64Target{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d75696e743634Target) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d75696e743634_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d75696e743634Target) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d75696e743634_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d75696e743634Target) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
-type unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target struct {
-	Value    *map[uint64][]ConflictRow
-	currKey  uint64
-	currElem []ConflictRow
+// map[uint64][]ConflictRow
+type unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget struct {
+	Value      *map[uint64][]ConflictRow
+	currKey    uint64
+	currElem   []ConflictRow
+	keyTarget  vdl.Uint64Target
+	elemTarget unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType7) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType7)
 	}
 	*t.Value = make(map[uint64][]ConflictRow)
 	return t, nil
 }
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint64(0)
-	return &vdl.Uint64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = reflect.Zero(reflect.TypeOf(t.currElem)).Interface().([]ConflictRow)
-	return &unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -426,13 +477,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target struct {
-	Value *[]ConflictRow
+// []ConflictRow
+type unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget struct {
+	Value      *[]ConflictRow
+	elemTarget ConflictRowTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType6) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType6)
 	}
@@ -443,45 +496,51 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &ConflictRowTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c696374526f77207374727563747b4b657920737472696e673b4c6f63616c56616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d3b52656d6f746556616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b416e636573746f7256616c756520762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c75653b4261746368496473205b5d75696e7436347dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
-type unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7d_Target struct {
-	Value **ConflictScanSet
+// Optional ConflictScanSet
+type unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7dTarget struct {
+	Value      **ConflictScanSet
+	elemTarget ConflictScanSetTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &ConflictScanSet{}
 	}
-	target, err := &ConflictScanSetTarget{Value: *t.Value}, error(nil)
+	t.elemTarget.Value = *t.Value
+	target, err := &t.elemTarget, error(nil)
 	if err != nil {
 		return nil, err
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e436f6e666c6963745363616e536574207374727563747b42794261746368206d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d7dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
 }
 
 type ConflictScanSetTarget struct {
-	Value *ConflictScanSet
+	Value         *ConflictScanSet
+	byBatchTarget unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -495,8 +554,9 @@
 func (t *ConflictScanSetTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "ByBatch":
-		val, err := &unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target{Value: &t.Value.ByBatch}, error(nil)
-		return nil, val, err
+		t.byBatchTarget.Value = &t.Value.ByBatch
+		target, err := &t.byBatchTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_ConflictScanSet)
 	}
@@ -509,34 +569,41 @@
 	return nil
 }
 
-type unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target struct {
-	Value    *map[uint64][]nosql.ScanOp
-	currKey  uint64
-	currElem []nosql.ScanOp
+// map[uint64][]nosql.ScanOp
+type unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget struct {
+	Value      *map[uint64][]nosql.ScanOp
+	currKey    uint64
+	currElem   []nosql.ScanOp
+	keyTarget  vdl.Uint64Target
+	elemTarget unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType9) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType9)
 	}
 	*t.Value = make(map[uint64][]nosql.ScanOp)
 	return t, nil
 }
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint64(0)
-	return &vdl.Uint64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = []nosql.ScanOp(nil)
-	return &unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b75696e7436345d5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -544,13 +611,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target struct {
-	Value *[]nosql.ScanOp
+// []nosql.ScanOp
+type unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget struct {
+	Value      *[]nosql.ScanOp
+	elemTarget nosql.ScanOpTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType8) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType8)
 	}
@@ -561,45 +630,54 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &nosql.ScanOpTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e5363616e4f70207374727563747b537461727420737472696e673b4c696d697420737472696e677dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
-type unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7d_Target struct {
-	Value    *map[uint64]nosql.BatchInfo
-	currKey  uint64
-	currElem nosql.BatchInfo
+// map[uint64]nosql.BatchInfo
+type unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7dTarget struct {
+	Value      *map[uint64]nosql.BatchInfo
+	currKey    uint64
+	currElem   nosql.BatchInfo
+	keyTarget  vdl.Uint64Target
+	elemTarget nosql.BatchInfoTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType3) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType3)
 	}
 	*t.Value = make(map[uint64]nosql.BatchInfo)
 	return t, nil
 }
-func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint64(0)
-	return &vdl.Uint64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = nosql.BatchInfo{}
-	return &nosql.BatchInfoTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b75696e7436345d762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368496e666f207374727563747b49642075696e7436343b48696e7420737472696e673b536f7572636520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e4261746368536f7572636520656e756d7b4c6f63616c3b52656d6f74657d7dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -1000,7 +1078,8 @@
 }
 
 type ResolutionTarget struct {
-	Value *Resolution
+	Value           *Resolution
+	resultSetTarget unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1014,8 +1093,9 @@
 func (t *ResolutionTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "ResultSet":
-		val, err := &unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7d_Target{Value: &t.Value.ResultSet}, error(nil)
-		return nil, val, err
+		t.resultSetTarget.Value = &t.Value.ResultSet
+		target, err := &t.resultSetTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_Resolution)
 	}
@@ -1028,34 +1108,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7d_Target struct {
-	Value    *map[string]ResolvedRow
-	currKey  string
-	currElem ResolvedRow
+// map[string]ResolvedRow
+type unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7dTarget struct {
+	Value      *map[string]ResolvedRow
+	currKey    string
+	currElem   ResolvedRow
+	keyTarget  vdl.StringTarget
+	elemTarget ResolvedRowTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType12) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType12)
 	}
 	*t.Value = make(map[string]ResolvedRow)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = reflect.Zero(reflect.TypeOf(t.currElem)).Interface().(ResolvedRow)
-	return &ResolvedRowTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d762e696f2f7632332f73796e63626173652f6e6f73716c2e5265736f6c766564526f77207374727563747b4b657920737472696e673b526573756c74203f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d7dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -1064,7 +1151,9 @@
 }
 
 type ResolvedRowTarget struct {
-	Value *ResolvedRow
+	Value        *ResolvedRow
+	keyTarget    vdl.StringTarget
+	resultTarget unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1078,11 +1167,13 @@
 func (t *ResolvedRowTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key":
-		val, err := &vdl.StringTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	case "Result":
-		val, err := &unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d_Target{Value: &t.Value.Result}, error(nil)
-		return nil, val, err
+		t.resultTarget.Value = &t.Value.Result
+		target, err := &t.resultTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_ResolvedRow)
 	}
@@ -1095,27 +1186,30 @@
 	return nil
 }
 
-type unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d_Target struct {
-	Value **Value
+// Optional Value
+type unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7dTarget struct {
+	Value      **Value
+	elemTarget ValueTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &Value{}
 	}
-	target, err := &ValueTarget{Value: *t.Value}, error(nil)
+	t.elemTarget.Value = *t.Value
+	target, err := &t.elemTarget, error(nil)
 	if err != nil {
 		return nil, err
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f762e696f2f7632332f73796e63626173652f6e6f73716c2e56616c7565207374727563747b537461746520762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c7565537461746520656e756d7b4578697374733b4e6f4578697374733b44656c657465643b556e6b6e6f776e7d3b56616c205b5d627974653b577269746554732074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b53656c656374696f6e20762e696f2f7632332f73657276696365732f73796e63626173652f6e6f73716c2e56616c756553656c656374696f6e20656e756d7b4c6f63616c3b52656d6f74653b4f746865727d7dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
diff --git a/syncbase/nosql/testdata/testdata.vdl.go b/syncbase/nosql/testdata/testdata.vdl.go
index a8927ab..16932ed 100644
--- a/syncbase/nosql/testdata/testdata.vdl.go
+++ b/syncbase/nosql/testdata/testdata.vdl.go
@@ -95,7 +95,11 @@
 }
 
 type AddressInfoTarget struct {
-	Value *AddressInfo
+	Value        *AddressInfo
+	streetTarget vdl.StringTarget
+	cityTarget   vdl.StringTarget
+	stateTarget  vdl.StringTarget
+	zipTarget    vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -109,17 +113,21 @@
 func (t *AddressInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Street":
-		val, err := &vdl.StringTarget{Value: &t.Value.Street}, error(nil)
-		return nil, val, err
+		t.streetTarget.Value = &t.Value.Street
+		target, err := &t.streetTarget, error(nil)
+		return nil, target, err
 	case "City":
-		val, err := &vdl.StringTarget{Value: &t.Value.City}, error(nil)
-		return nil, val, err
+		t.cityTarget.Value = &t.Value.City
+		target, err := &t.cityTarget, error(nil)
+		return nil, target, err
 	case "State":
-		val, err := &vdl.StringTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Zip":
-		val, err := &vdl.StringTarget{Value: &t.Value.Zip}, error(nil)
-		return nil, val, err
+		t.zipTarget.Value = &t.Value.Zip
+		target, err := &t.zipTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_AddressInfo)
 	}
@@ -339,7 +347,8 @@
 }
 
 type EquifaxCreditReportTarget struct {
-	Value *EquifaxCreditReport
+	Value        *EquifaxCreditReport
+	ratingTarget vdl.ByteTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -353,8 +362,9 @@
 func (t *EquifaxCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &vdl.ByteTarget{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_EquifaxCreditReport)
 	}
@@ -409,7 +419,8 @@
 }
 
 type ExperianCreditReportTarget struct {
-	Value *ExperianCreditReport
+	Value        *ExperianCreditReport
+	ratingTarget ExperianRatingTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -423,8 +434,9 @@
 func (t *ExperianCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &ExperianRatingTarget{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_ExperianCreditReport)
 	}
@@ -478,7 +490,8 @@
 }
 
 type TransUnionCreditReportTarget struct {
-	Value *TransUnionCreditReport
+	Value        *TransUnionCreditReport
+	ratingTarget vdl.Int16Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -492,8 +505,9 @@
 func (t *TransUnionCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &vdl.Int16Target{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_TransUnionCreditReport)
 	}
@@ -693,7 +707,9 @@
 }
 
 type CreditReportTarget struct {
-	Value *CreditReport
+	Value        *CreditReport
+	agencyTarget CreditAgencyTarget
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -707,11 +723,12 @@
 func (t *CreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Agency":
-		val, err := &CreditAgencyTarget{Value: &t.Value.Agency}, error(nil)
-		return nil, val, err
+		t.agencyTarget.Value = &t.Value.Agency
+		target, err := &t.agencyTarget, error(nil)
+		return nil, target, err
 	case "Report":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Report))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Report))
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_CreditReport)
 	}
@@ -819,7 +836,12 @@
 }
 
 type CustomerTarget struct {
-	Value *Customer
+	Value         *Customer
+	nameTarget    vdl.StringTarget
+	idTarget      vdl.Int64Target
+	activeTarget  vdl.BoolTarget
+	addressTarget AddressInfoTarget
+	creditTarget  CreditReportTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -833,20 +855,25 @@
 func (t *CustomerTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Id":
-		val, err := &vdl.Int64Target{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "Active":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Active}, error(nil)
-		return nil, val, err
+		t.activeTarget.Value = &t.Value.Active
+		target, err := &t.activeTarget, error(nil)
+		return nil, target, err
 	case "Address":
-		val, err := &AddressInfoTarget{Value: &t.Value.Address}, error(nil)
-		return nil, val, err
+		t.addressTarget.Value = &t.Value.Address
+		target, err := &t.addressTarget, error(nil)
+		return nil, target, err
 	case "Credit":
-		val, err := &CreditReportTarget{Value: &t.Value.Credit}, error(nil)
-		return nil, val, err
+		t.creditTarget.Value = &t.Value.Credit
+		target, err := &t.creditTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_Customer)
 	}
@@ -957,7 +984,12 @@
 }
 
 type InvoiceTarget struct {
-	Value *Invoice
+	Value             *Invoice
+	custIdTarget      vdl.Int64Target
+	invoiceNumTarget  vdl.Int64Target
+	invoiceDateTarget time_2.TimeTarget
+	amountTarget      vdl.Int64Target
+	shipToTarget      AddressInfoTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -971,20 +1003,25 @@
 func (t *InvoiceTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "CustId":
-		val, err := &vdl.Int64Target{Value: &t.Value.CustId}, error(nil)
-		return nil, val, err
+		t.custIdTarget.Value = &t.Value.CustId
+		target, err := &t.custIdTarget, error(nil)
+		return nil, target, err
 	case "InvoiceNum":
-		val, err := &vdl.Int64Target{Value: &t.Value.InvoiceNum}, error(nil)
-		return nil, val, err
+		t.invoiceNumTarget.Value = &t.Value.InvoiceNum
+		target, err := &t.invoiceNumTarget, error(nil)
+		return nil, target, err
 	case "InvoiceDate":
-		val, err := &time_2.TimeTarget{Value: &t.Value.InvoiceDate}, error(nil)
-		return nil, val, err
+		t.invoiceDateTarget.Value = &t.Value.InvoiceDate
+		target, err := &t.invoiceDateTarget, error(nil)
+		return nil, target, err
 	case "Amount":
-		val, err := &vdl.Int64Target{Value: &t.Value.Amount}, error(nil)
-		return nil, val, err
+		t.amountTarget.Value = &t.Value.Amount
+		target, err := &t.amountTarget, error(nil)
+		return nil, target, err
 	case "ShipTo":
-		val, err := &AddressInfoTarget{Value: &t.Value.ShipTo}, error(nil)
-		return nil, val, err
+		t.shipToTarget.Value = &t.Value.ShipTo
+		target, err := &t.shipToTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_Invoice)
 	}
@@ -1168,7 +1205,18 @@
 }
 
 type NumbersTarget struct {
-	Value *Numbers
+	Value      *Numbers
+	bTarget    vdl.ByteTarget
+	ui16Target vdl.Uint16Target
+	ui32Target vdl.Uint32Target
+	ui64Target vdl.Uint64Target
+	i16Target  vdl.Int16Target
+	i32Target  vdl.Int32Target
+	i64Target  vdl.Int64Target
+	f32Target  vdl.Float32Target
+	f64Target  vdl.Float64Target
+	c64Target  vdl.Complex64Target
+	c128Target vdl.Complex128Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1182,38 +1230,49 @@
 func (t *NumbersTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "B":
-		val, err := &vdl.ByteTarget{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	case "Ui16":
-		val, err := &vdl.Uint16Target{Value: &t.Value.Ui16}, error(nil)
-		return nil, val, err
+		t.ui16Target.Value = &t.Value.Ui16
+		target, err := &t.ui16Target, error(nil)
+		return nil, target, err
 	case "Ui32":
-		val, err := &vdl.Uint32Target{Value: &t.Value.Ui32}, error(nil)
-		return nil, val, err
+		t.ui32Target.Value = &t.Value.Ui32
+		target, err := &t.ui32Target, error(nil)
+		return nil, target, err
 	case "Ui64":
-		val, err := &vdl.Uint64Target{Value: &t.Value.Ui64}, error(nil)
-		return nil, val, err
+		t.ui64Target.Value = &t.Value.Ui64
+		target, err := &t.ui64Target, error(nil)
+		return nil, target, err
 	case "I16":
-		val, err := &vdl.Int16Target{Value: &t.Value.I16}, error(nil)
-		return nil, val, err
+		t.i16Target.Value = &t.Value.I16
+		target, err := &t.i16Target, error(nil)
+		return nil, target, err
 	case "I32":
-		val, err := &vdl.Int32Target{Value: &t.Value.I32}, error(nil)
-		return nil, val, err
+		t.i32Target.Value = &t.Value.I32
+		target, err := &t.i32Target, error(nil)
+		return nil, target, err
 	case "I64":
-		val, err := &vdl.Int64Target{Value: &t.Value.I64}, error(nil)
-		return nil, val, err
+		t.i64Target.Value = &t.Value.I64
+		target, err := &t.i64Target, error(nil)
+		return nil, target, err
 	case "F32":
-		val, err := &vdl.Float32Target{Value: &t.Value.F32}, error(nil)
-		return nil, val, err
+		t.f32Target.Value = &t.Value.F32
+		target, err := &t.f32Target, error(nil)
+		return nil, target, err
 	case "F64":
-		val, err := &vdl.Float64Target{Value: &t.Value.F64}, error(nil)
-		return nil, val, err
+		t.f64Target.Value = &t.Value.F64
+		target, err := &t.f64Target, error(nil)
+		return nil, target, err
 	case "C64":
-		val, err := &vdl.Complex64Target{Value: &t.Value.C64}, error(nil)
-		return nil, val, err
+		t.c64Target.Value = &t.Value.C64
+		target, err := &t.c64Target, error(nil)
+		return nil, target, err
 	case "C128":
-		val, err := &vdl.Complex128Target{Value: &t.Value.C128}, error(nil)
-		return nil, val, err
+		t.c128Target.Value = &t.Value.C128
+		target, err := &t.c128Target, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_Numbers)
 	}
@@ -1268,7 +1327,8 @@
 }
 
 type FooTypeTarget struct {
-	Value *FooType
+	Value     *FooType
+	barTarget BarTypeTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1282,8 +1342,9 @@
 func (t *FooTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Bar":
-		val, err := &BarTypeTarget{Value: &t.Value.Bar}, error(nil)
-		return nil, val, err
+		t.barTarget.Value = &t.Value.Bar
+		target, err := &t.barTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_FooType)
 	}
@@ -1297,7 +1358,8 @@
 }
 
 type BarTypeTarget struct {
-	Value *BarType
+	Value     *BarType
+	bazTarget BazTypeTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1311,8 +1373,9 @@
 func (t *BarTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Baz":
-		val, err := &BazTypeTarget{Value: &t.Value.Baz}, error(nil)
-		return nil, val, err
+		t.bazTarget.Value = &t.Value.Baz
+		target, err := &t.bazTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_BarType)
 	}
@@ -1326,7 +1389,9 @@
 }
 
 type BazTypeTarget struct {
-	Value *BazType
+	Value      *BazType
+	nameTarget vdl.StringTarget
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1340,11 +1405,12 @@
 func (t *BazTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "TitleOrValue":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.TitleOrValue))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.TitleOrValue))
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_BazType)
 	}
@@ -1580,8 +1646,10 @@
 	return &ArrayOfFourTarget{Value: m}
 }
 
+// ArrayOfFour
 type ArrayOfFourTarget struct {
-	Value *ArrayOfFour
+	Value      *ArrayOfFour
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -1593,7 +1661,9 @@
 	return t, nil
 }
 func (t *ArrayOfFourTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.StringTarget{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *ArrayOfFourTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -1742,7 +1812,11 @@
 }
 
 type KeyIndexDataTarget struct {
-	Value *KeyIndexData
+	Value   *KeyIndexData
+	aTarget ArrayOfFourTarget
+	lTarget vdl.StringSliceTarget
+	mTarget unnamed_6d61705b636f6d706c65783132385d737472696e67Target
+	sTarget unnamed_7365745b737472696e675dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1756,17 +1830,21 @@
 func (t *KeyIndexDataTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &ArrayOfFourTarget{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		t.aTarget.Value = &t.Value.A
+		target, err := &t.aTarget, error(nil)
+		return nil, target, err
 	case "L":
-		val, err := &vdl.StringSliceTarget{Value: &t.Value.L}, error(nil)
-		return nil, val, err
+		t.lTarget.Value = &t.Value.L
+		target, err := &t.lTarget, error(nil)
+		return nil, target, err
 	case "M":
-		val, err := &unnamed_6d61705b636f6d706c65783132385d737472696e67_Target{Value: &t.Value.M}, error(nil)
-		return nil, val, err
+		t.mTarget.Value = &t.Value.M
+		target, err := &t.mTarget, error(nil)
+		return nil, target, err
 	case "S":
-		val, err := &unnamed_7365745b737472696e675d_Target{Value: &t.Value.S}, error(nil)
-		return nil, val, err
+		t.sTarget.Value = &t.Value.S
+		target, err := &t.sTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_KeyIndexData)
 	}
@@ -1779,34 +1857,41 @@
 	return nil
 }
 
-type unnamed_6d61705b636f6d706c65783132385d737472696e67_Target struct {
-	Value    *map[complex128]string
-	currKey  complex128
-	currElem string
+// map[complex128]string
+type unnamed_6d61705b636f6d706c65783132385d737472696e67Target struct {
+	Value      *map[complex128]string
+	currKey    complex128
+	currElem   string
+	keyTarget  vdl.Complex128Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType13) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType13)
 	}
 	*t.Value = make(map[complex128]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = complex128(0)
-	return &vdl.Complex128Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b636f6d706c65783132385d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -1814,29 +1899,33 @@
 	return nil
 }
 
-type unnamed_7365745b737472696e675d_Target struct {
-	Value   *map[string]struct{}
-	currKey string
+// map[string]struct{}
+type unnamed_7365745b737472696e675dTarget struct {
+	Value     *map[string]struct{}
+	currKey   string
+	keyTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b737472696e675d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b737472696e675dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType14) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType14)
 	}
 	*t.Value = make(map[string]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b737472696e675d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b737472696e675dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b737472696e675d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b737472696e675dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b737472696e675d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b737472696e675dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -1885,7 +1974,8 @@
 }
 
 type BigDataTarget struct {
-	Value *BigData
+	Value     *BigData
+	keyTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1899,8 +1989,9 @@
 func (t *BigDataTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key":
-		val, err := &vdl.StringTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_syncbase_nosql_testdata_BigData)
 	}
diff --git a/vdl/vdl.vdl.go b/vdl/vdl.vdl.go
index 39a8255..8bdda21 100644
--- a/vdl/vdl.vdl.go
+++ b/vdl/vdl.vdl.go
@@ -121,7 +121,11 @@
 }
 
 type WireErrorTarget struct {
-	Value *WireError
+	Value           *WireError
+	idTarget        StringTarget
+	retryCodeTarget WireRetryCodeTarget
+	msgTarget       StringTarget
+	paramListTarget unnamed_5b5d616e79Target
 	TargetBase
 	FieldsTargetBase
 }
@@ -135,17 +139,21 @@
 func (t *WireErrorTarget) StartField(name string) (key, field Target, _ error) {
 	switch name {
 	case "Id":
-		val, err := &StringTarget{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "RetryCode":
-		val, err := &WireRetryCodeTarget{Value: &t.Value.RetryCode}, error(nil)
-		return nil, val, err
+		t.retryCodeTarget.Value = &t.Value.RetryCode
+		target, err := &t.retryCodeTarget, error(nil)
+		return nil, target, err
 	case "Msg":
-		val, err := &StringTarget{Value: &t.Value.Msg}, error(nil)
-		return nil, val, err
+		t.msgTarget.Value = &t.Value.Msg
+		target, err := &t.msgTarget, error(nil)
+		return nil, target, err
 	case "ParamList":
-		val, err := &unnamed_5b5d616e79_Target{Value: &t.Value.ParamList}, error(nil)
-		return nil, val, err
+		t.paramListTarget.Value = &t.Value.ParamList
+		target, err := &t.paramListTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vdl_WireError)
 	}
@@ -183,13 +191,15 @@
 	return nil
 }
 
-type unnamed_5b5d616e79_Target struct {
+// []*Value
+type unnamed_5b5d616e79Target struct {
 	Value *[]*Value
+
 	TargetBase
 	ListTargetBase
 }
 
-func (t *unnamed_5b5d616e79_Target) StartList(tt *Type, len int) (ListTarget, error) {
+func (t *unnamed_5b5d616e79Target) StartList(tt *Type, len int) (ListTarget, error) {
 	if !Compatible(tt, __VDLType1) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType1)
 	}
@@ -200,13 +210,14 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d616e79_Target) StartElem(index int) (elem Target, _ error) {
-	return ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+func (t *unnamed_5b5d616e79Target) StartElem(index int) (elem Target, _ error) {
+	target, err := ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+	return target, err
 }
-func (t *unnamed_5b5d616e79_Target) FinishElem(elem Target) error {
+func (t *unnamed_5b5d616e79Target) FinishElem(elem Target) error {
 	return nil
 }
-func (t *unnamed_5b5d616e79_Target) FinishList(elem ListTarget) error {
+func (t *unnamed_5b5d616e79Target) FinishList(elem ListTarget) error {
 
 	return nil
 }
diff --git a/vdlroot/signature/signature.vdl.go b/vdlroot/signature/signature.vdl.go
index b5e0f61..f9e2c8d 100644
--- a/vdlroot/signature/signature.vdl.go
+++ b/vdlroot/signature/signature.vdl.go
@@ -144,7 +144,12 @@
 }
 
 type InterfaceTarget struct {
-	Value *Interface
+	Value         *Interface
+	nameTarget    vdl.StringTarget
+	pkgPathTarget vdl.StringTarget
+	docTarget     vdl.StringTarget
+	embedsTarget  unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677dTarget
+	methodsTarget unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -158,20 +163,25 @@
 func (t *InterfaceTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "PkgPath":
-		val, err := &vdl.StringTarget{Value: &t.Value.PkgPath}, error(nil)
-		return nil, val, err
+		t.pkgPathTarget.Value = &t.Value.PkgPath
+		target, err := &t.pkgPathTarget, error(nil)
+		return nil, target, err
 	case "Doc":
-		val, err := &vdl.StringTarget{Value: &t.Value.Doc}, error(nil)
-		return nil, val, err
+		t.docTarget.Value = &t.Value.Doc
+		target, err := &t.docTarget, error(nil)
+		return nil, target, err
 	case "Embeds":
-		val, err := &unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677d_Target{Value: &t.Value.Embeds}, error(nil)
-		return nil, val, err
+		t.embedsTarget.Value = &t.Value.Embeds
+		target, err := &t.embedsTarget, error(nil)
+		return nil, target, err
 	case "Methods":
-		val, err := &unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797d_Target{Value: &t.Value.Methods}, error(nil)
-		return nil, val, err
+		t.methodsTarget.Value = &t.Value.Methods
+		target, err := &t.methodsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_signature_Interface)
 	}
@@ -184,13 +194,15 @@
 	return nil
 }
 
-type unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677d_Target struct {
-	Value *[]Embed
+// []Embed
+type unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677dTarget struct {
+	Value      *[]Embed
+	elemTarget EmbedTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType1) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType1)
 	}
@@ -201,19 +213,24 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &EmbedTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d7369676e61747572652e456d626564207374727563747b4e616d6520737472696e673b506b675061746820737472696e673b446f6320737472696e677dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
 type EmbedTarget struct {
-	Value *Embed
+	Value         *Embed
+	nameTarget    vdl.StringTarget
+	pkgPathTarget vdl.StringTarget
+	docTarget     vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -227,14 +244,17 @@
 func (t *EmbedTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "PkgPath":
-		val, err := &vdl.StringTarget{Value: &t.Value.PkgPath}, error(nil)
-		return nil, val, err
+		t.pkgPathTarget.Value = &t.Value.PkgPath
+		target, err := &t.pkgPathTarget, error(nil)
+		return nil, target, err
 	case "Doc":
-		val, err := &vdl.StringTarget{Value: &t.Value.Doc}, error(nil)
-		return nil, val, err
+		t.docTarget.Value = &t.Value.Doc
+		target, err := &t.docTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_signature_Embed)
 	}
@@ -247,13 +267,15 @@
 	return nil
 }
 
-type unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797d_Target struct {
-	Value *[]Method
+// []Method
+type unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797dTarget struct {
+	Value      *[]Method
+	elemTarget MethodTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType2) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType2)
 	}
@@ -264,19 +286,28 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &MethodTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d7369676e61747572652e4d6574686f64207374727563747b4e616d6520737472696e673b446f6320737472696e673b496e41726773205b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d3b4f757441726773205b5d7369676e61747572652e4172673b496e53747265616d203f7369676e61747572652e4172673b4f757453747265616d203f7369676e61747572652e4172673b54616773205b5d616e797dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
 type MethodTarget struct {
-	Value *Method
+	Value           *Method
+	nameTarget      vdl.StringTarget
+	docTarget       vdl.StringTarget
+	inArgsTarget    unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget
+	outArgsTarget   unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget
+	inStreamTarget  unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget
+	outStreamTarget unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget
+	tagsTarget      unnamed_5b5d616e79Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -290,26 +321,33 @@
 func (t *MethodTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Doc":
-		val, err := &vdl.StringTarget{Value: &t.Value.Doc}, error(nil)
-		return nil, val, err
+		t.docTarget.Value = &t.Value.Doc
+		target, err := &t.docTarget, error(nil)
+		return nil, target, err
 	case "InArgs":
-		val, err := &unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target{Value: &t.Value.InArgs}, error(nil)
-		return nil, val, err
+		t.inArgsTarget.Value = &t.Value.InArgs
+		target, err := &t.inArgsTarget, error(nil)
+		return nil, target, err
 	case "OutArgs":
-		val, err := &unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target{Value: &t.Value.OutArgs}, error(nil)
-		return nil, val, err
+		t.outArgsTarget.Value = &t.Value.OutArgs
+		target, err := &t.outArgsTarget, error(nil)
+		return nil, target, err
 	case "InStream":
-		val, err := &unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target{Value: &t.Value.InStream}, error(nil)
-		return nil, val, err
+		t.inStreamTarget.Value = &t.Value.InStream
+		target, err := &t.inStreamTarget, error(nil)
+		return nil, target, err
 	case "OutStream":
-		val, err := &unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target{Value: &t.Value.OutStream}, error(nil)
-		return nil, val, err
+		t.outStreamTarget.Value = &t.Value.OutStream
+		target, err := &t.outStreamTarget, error(nil)
+		return nil, target, err
 	case "Tags":
-		val, err := &unnamed_5b5d616e79_Target{Value: &t.Value.Tags}, error(nil)
-		return nil, val, err
+		t.tagsTarget.Value = &t.Value.Tags
+		target, err := &t.tagsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_signature_Method)
 	}
@@ -322,13 +360,15 @@
 	return nil
 }
 
-type unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target struct {
-	Value *[]Arg
+// []Arg
+type unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget struct {
+	Value      *[]Arg
+	elemTarget ArgTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType3) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType3)
 	}
@@ -339,19 +379,24 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &ArgTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
 type ArgTarget struct {
-	Value *Arg
+	Value      *Arg
+	nameTarget vdl.StringTarget
+	docTarget  vdl.StringTarget
+	typeTarget vdl.TypeObjectTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -365,14 +410,17 @@
 func (t *ArgTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Doc":
-		val, err := &vdl.StringTarget{Value: &t.Value.Doc}, error(nil)
-		return nil, val, err
+		t.docTarget.Value = &t.Value.Doc
+		target, err := &t.docTarget, error(nil)
+		return nil, target, err
 	case "Type":
-		val, err := &vdl.TypeObjectTarget{Value: &t.Value.Type}, error(nil)
-		return nil, val, err
+		t.typeTarget.Value = &t.Value.Type
+		target, err := &t.typeTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_signature_Arg)
 	}
@@ -385,41 +433,46 @@
 	return nil
 }
 
-type unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target struct {
-	Value **Arg
+// Optional Arg
+type unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget struct {
+	Value      **Arg
+	elemTarget ArgTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &Arg{
 			Type: vdl.AnyType,
 		}
 	}
-	target, err := &ArgTarget{Value: *t.Value}, error(nil)
+	t.elemTarget.Value = *t.Value
+	target, err := &t.elemTarget, error(nil)
 	if err != nil {
 		return nil, err
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f7369676e61747572652e417267207374727563747b4e616d6520737472696e673b446f6320737472696e673b5479706520747970656f626a6563747dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
 }
 
-type unnamed_5b5d616e79_Target struct {
+// []*vdl.Value
+type unnamed_5b5d616e79Target struct {
 	Value *[]*vdl.Value
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d616e79_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d616e79Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType4) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType4)
 	}
@@ -430,13 +483,14 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d616e79_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+func (t *unnamed_5b5d616e79Target) StartElem(index int) (elem vdl.Target, _ error) {
+	target, err := vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+	return target, err
 }
-func (t *unnamed_5b5d616e79_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d616e79Target) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d616e79_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d616e79Target) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
diff --git a/vdlroot/time/time.vdl.go b/vdlroot/time/time.vdl.go
index b1bd314..fc389fa 100644
--- a/vdlroot/time/time.vdl.go
+++ b/vdlroot/time/time.vdl.go
@@ -86,8 +86,10 @@
 }
 
 type TimeTarget struct {
-	Value     *time.Time
-	wireValue Time
+	Value         *time.Time
+	wireValue     Time
+	secondsTarget vdl.Int64Target
+	nanosTarget   vdl.Int32Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -101,11 +103,13 @@
 func (t *TimeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Seconds":
-		val, err := &vdl.Int64Target{Value: &t.wireValue.Seconds}, error(nil)
-		return nil, val, err
+		t.secondsTarget.Value = &t.wireValue.Seconds
+		target, err := &t.secondsTarget, error(nil)
+		return nil, target, err
 	case "Nanos":
-		val, err := &vdl.Int32Target{Value: &t.wireValue.Nanos}, error(nil)
-		return nil, val, err
+		t.nanosTarget.Value = &t.wireValue.Nanos
+		target, err := &t.nanosTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_time_Time)
 	}
@@ -183,8 +187,10 @@
 }
 
 type DurationTarget struct {
-	Value     *time.Duration
-	wireValue Duration
+	Value         *time.Duration
+	wireValue     Duration
+	secondsTarget vdl.Int64Target
+	nanosTarget   vdl.Int32Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -198,11 +204,13 @@
 func (t *DurationTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Seconds":
-		val, err := &vdl.Int64Target{Value: &t.wireValue.Seconds}, error(nil)
-		return nil, val, err
+		t.secondsTarget.Value = &t.wireValue.Seconds
+		target, err := &t.secondsTarget, error(nil)
+		return nil, target, err
 	case "Nanos":
-		val, err := &vdl.Int32Target{Value: &t.wireValue.Nanos}, error(nil)
-		return nil, val, err
+		t.nanosTarget.Value = &t.wireValue.Nanos
+		target, err := &t.nanosTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_time_Duration)
 	}
@@ -301,8 +309,10 @@
 }
 
 type WireDeadlineTarget struct {
-	Value     *Deadline
-	wireValue WireDeadline
+	Value            *Deadline
+	wireValue        WireDeadline
+	fromNowTarget    DurationTarget
+	noDeadlineTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -316,11 +326,13 @@
 func (t *WireDeadlineTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "FromNow":
-		val, err := &DurationTarget{Value: &t.wireValue.FromNow}, error(nil)
-		return nil, val, err
+		t.fromNowTarget.Value = &t.wireValue.FromNow
+		target, err := &t.fromNowTarget, error(nil)
+		return nil, target, err
 	case "NoDeadline":
-		val, err := &vdl.BoolTarget{Value: &t.wireValue.NoDeadline}, error(nil)
-		return nil, val, err
+		t.noDeadlineTarget.Value = &t.wireValue.NoDeadline
+		target, err := &t.noDeadlineTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_time_WireDeadline)
 	}
diff --git a/vdlroot/vdltool/vdltool.vdl.go b/vdlroot/vdltool/vdltool.vdl.go
index 1bc0b17..65284bf 100644
--- a/vdlroot/vdltool/vdltool.vdl.go
+++ b/vdlroot/vdltool/vdltool.vdl.go
@@ -122,7 +122,11 @@
 }
 
 type ConfigTarget struct {
-	Value *Config
+	Value              *Config
+	genLanguagesTarget unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget
+	goTarget           GoConfigTarget
+	javaTarget         JavaConfigTarget
+	javascriptTarget   JavascriptConfigTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -136,17 +140,21 @@
 func (t *ConfigTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "GenLanguages":
-		val, err := &unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5d_Target{Value: &t.Value.GenLanguages}, error(nil)
-		return nil, val, err
+		t.genLanguagesTarget.Value = &t.Value.GenLanguages
+		target, err := &t.genLanguagesTarget, error(nil)
+		return nil, target, err
 	case "Go":
-		val, err := &GoConfigTarget{Value: &t.Value.Go}, error(nil)
-		return nil, val, err
+		t.goTarget.Value = &t.Value.Go
+		target, err := &t.goTarget, error(nil)
+		return nil, target, err
 	case "Java":
-		val, err := &JavaConfigTarget{Value: &t.Value.Java}, error(nil)
-		return nil, val, err
+		t.javaTarget.Value = &t.Value.Java
+		target, err := &t.javaTarget, error(nil)
+		return nil, target, err
 	case "Javascript":
-		val, err := &JavascriptConfigTarget{Value: &t.Value.Javascript}, error(nil)
-		return nil, val, err
+		t.javascriptTarget.Value = &t.Value.Javascript
+		target, err := &t.javascriptTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_Config)
 	}
@@ -159,29 +167,33 @@
 	return nil
 }
 
-type unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5d_Target struct {
-	Value   *map[GenLanguage]struct{}
-	currKey GenLanguage
+// map[GenLanguage]struct{}
+type unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget struct {
+	Value     *map[GenLanguage]struct{}
+	currKey   GenLanguage
+	keyTarget GenLanguageTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
 
-func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5d_Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
+func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
 	if !vdl.Compatible(tt, __VDLType1) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType1)
 	}
 	*t.Value = make(map[GenLanguage]struct{})
 	return t, nil
 }
-func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = GenLanguageGo
-	return &GenLanguageTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5d_Target) FinishKey(key vdl.Target) error {
+func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
 	return nil
 }
-func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5d_Target) FinishSet(list vdl.SetTarget) error {
+func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget) FinishSet(list vdl.SetTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -213,7 +225,8 @@
 }
 
 type GoConfigTarget struct {
-	Value *GoConfig
+	Value                   *GoConfig
+	wireToNativeTypesTarget unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -227,8 +240,9 @@
 func (t *GoConfigTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "WireToNativeTypes":
-		val, err := &unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7d_Target{Value: &t.Value.WireToNativeTypes}, error(nil)
-		return nil, val, err
+		t.wireToNativeTypesTarget.Value = &t.Value.WireToNativeTypes
+		target, err := &t.wireToNativeTypesTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_GoConfig)
 	}
@@ -241,34 +255,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7d_Target struct {
-	Value    *map[string]GoType
-	currKey  string
-	currElem GoType
+// map[string]GoType
+type unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget struct {
+	Value      *map[string]GoType
+	currKey    string
+	currElem   GoType
+	keyTarget  vdl.StringTarget
+	elemTarget GoTypeTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType3) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType3)
 	}
 	*t.Value = make(map[string]GoType)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = GoType{}
-	return &GoTypeTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -277,7 +298,9 @@
 }
 
 type GoTypeTarget struct {
-	Value *GoType
+	Value         *GoType
+	typeTarget    vdl.StringTarget
+	importsTarget unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -291,11 +314,13 @@
 func (t *GoTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Type":
-		val, err := &vdl.StringTarget{Value: &t.Value.Type}, error(nil)
-		return nil, val, err
+		t.typeTarget.Value = &t.Value.Type
+		target, err := &t.typeTarget, error(nil)
+		return nil, target, err
 	case "Imports":
-		val, err := &unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d_Target{Value: &t.Value.Imports}, error(nil)
-		return nil, val, err
+		t.importsTarget.Value = &t.Value.Imports
+		target, err := &t.importsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_GoType)
 	}
@@ -308,13 +333,15 @@
 	return nil
 }
 
-type unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d_Target struct {
-	Value *[]GoImport
+// []GoImport
+type unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget struct {
+	Value      *[]GoImport
+	elemTarget GoImportTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType2) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType2)
 	}
@@ -325,19 +352,23 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &GoImportTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
 type GoImportTarget struct {
-	Value *GoImport
+	Value      *GoImport
+	pathTarget vdl.StringTarget
+	nameTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -351,11 +382,13 @@
 func (t *GoImportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Path":
-		val, err := &vdl.StringTarget{Value: &t.Value.Path}, error(nil)
-		return nil, val, err
+		t.pathTarget.Value = &t.Value.Path
+		target, err := &t.pathTarget, error(nil)
+		return nil, target, err
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_GoImport)
 	}
@@ -369,7 +402,9 @@
 }
 
 type JavaConfigTarget struct {
-	Value *JavaConfig
+	Value                   *JavaConfig
+	wireToNativeTypesTarget unnamed_6d61705b737472696e675d737472696e67Target
+	wireTypeRenamesTarget   unnamed_6d61705b737472696e675d737472696e67Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -383,11 +418,13 @@
 func (t *JavaConfigTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "WireToNativeTypes":
-		val, err := &unnamed_6d61705b737472696e675d737472696e67_Target{Value: &t.Value.WireToNativeTypes}, error(nil)
-		return nil, val, err
+		t.wireToNativeTypesTarget.Value = &t.Value.WireToNativeTypes
+		target, err := &t.wireToNativeTypesTarget, error(nil)
+		return nil, target, err
 	case "WireTypeRenames":
-		val, err := &unnamed_6d61705b737472696e675d737472696e67_Target{Value: &t.Value.WireTypeRenames}, error(nil)
-		return nil, val, err
+		t.wireTypeRenamesTarget.Value = &t.Value.WireTypeRenames
+		target, err := &t.wireTypeRenamesTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_JavaConfig)
 	}
@@ -400,34 +437,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d737472696e67_Target struct {
-	Value    *map[string]string
-	currKey  string
-	currElem string
+// map[string]string
+type unnamed_6d61705b737472696e675d737472696e67Target struct {
+	Value      *map[string]string
+	currKey    string
+	currElem   string
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType4) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType4)
 	}
 	*t.Value = make(map[string]string)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d737472696e67_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
diff --git a/vom/internal/internal.vdl.go b/vom/internal/internal.vdl.go
index ab94944..c04bcd4 100644
--- a/vom/internal/internal.vdl.go
+++ b/vom/internal/internal.vdl.go
@@ -93,7 +93,11 @@
 }
 
 type AddressInfoTarget struct {
-	Value *AddressInfo
+	Value        *AddressInfo
+	streetTarget vdl.StringTarget
+	cityTarget   vdl.StringTarget
+	stateTarget  vdl.StringTarget
+	zipTarget    vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -107,17 +111,21 @@
 func (t *AddressInfoTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Street":
-		val, err := &vdl.StringTarget{Value: &t.Value.Street}, error(nil)
-		return nil, val, err
+		t.streetTarget.Value = &t.Value.Street
+		target, err := &t.streetTarget, error(nil)
+		return nil, target, err
 	case "City":
-		val, err := &vdl.StringTarget{Value: &t.Value.City}, error(nil)
-		return nil, val, err
+		t.cityTarget.Value = &t.Value.City
+		target, err := &t.cityTarget, error(nil)
+		return nil, target, err
 	case "State":
-		val, err := &vdl.StringTarget{Value: &t.Value.State}, error(nil)
-		return nil, val, err
+		t.stateTarget.Value = &t.Value.State
+		target, err := &t.stateTarget, error(nil)
+		return nil, target, err
 	case "Zip":
-		val, err := &vdl.StringTarget{Value: &t.Value.Zip}, error(nil)
-		return nil, val, err
+		t.zipTarget.Value = &t.Value.Zip
+		target, err := &t.zipTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_internal_AddressInfo)
 	}
@@ -337,7 +345,8 @@
 }
 
 type EquifaxCreditReportTarget struct {
-	Value *EquifaxCreditReport
+	Value        *EquifaxCreditReport
+	ratingTarget vdl.ByteTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -351,8 +360,9 @@
 func (t *EquifaxCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &vdl.ByteTarget{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_internal_EquifaxCreditReport)
 	}
@@ -407,7 +417,8 @@
 }
 
 type ExperianCreditReportTarget struct {
-	Value *ExperianCreditReport
+	Value        *ExperianCreditReport
+	ratingTarget ExperianRatingTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -421,8 +432,9 @@
 func (t *ExperianCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &ExperianRatingTarget{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_internal_ExperianCreditReport)
 	}
@@ -476,7 +488,8 @@
 }
 
 type TransUnionCreditReportTarget struct {
-	Value *TransUnionCreditReport
+	Value        *TransUnionCreditReport
+	ratingTarget vdl.Int16Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -490,8 +503,9 @@
 func (t *TransUnionCreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Rating":
-		val, err := &vdl.Int16Target{Value: &t.Value.Rating}, error(nil)
-		return nil, val, err
+		t.ratingTarget.Value = &t.Value.Rating
+		target, err := &t.ratingTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_internal_TransUnionCreditReport)
 	}
@@ -691,7 +705,9 @@
 }
 
 type CreditReportTarget struct {
-	Value *CreditReport
+	Value        *CreditReport
+	agencyTarget CreditAgencyTarget
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -705,11 +721,12 @@
 func (t *CreditReportTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Agency":
-		val, err := &CreditAgencyTarget{Value: &t.Value.Agency}, error(nil)
-		return nil, val, err
+		t.agencyTarget.Value = &t.Value.Agency
+		target, err := &t.agencyTarget, error(nil)
+		return nil, target, err
 	case "Report":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Report))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Report))
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_internal_CreditReport)
 	}
@@ -817,7 +834,12 @@
 }
 
 type CustomerTarget struct {
-	Value *Customer
+	Value         *Customer
+	nameTarget    vdl.StringTarget
+	idTarget      vdl.Int64Target
+	activeTarget  vdl.BoolTarget
+	addressTarget AddressInfoTarget
+	creditTarget  CreditReportTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -831,20 +853,25 @@
 func (t *CustomerTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Id":
-		val, err := &vdl.Int64Target{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "Active":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Active}, error(nil)
-		return nil, val, err
+		t.activeTarget.Value = &t.Value.Active
+		target, err := &t.activeTarget, error(nil)
+		return nil, target, err
 	case "Address":
-		val, err := &AddressInfoTarget{Value: &t.Value.Address}, error(nil)
-		return nil, val, err
+		t.addressTarget.Value = &t.Value.Address
+		target, err := &t.addressTarget, error(nil)
+		return nil, target, err
 	case "Credit":
-		val, err := &CreditReportTarget{Value: &t.Value.Credit}, error(nil)
-		return nil, val, err
+		t.creditTarget.Value = &t.Value.Credit
+		target, err := &t.creditTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_internal_Customer)
 	}
diff --git a/vom/testdata/types/types.vdl.go b/vom/testdata/types/types.vdl.go
index 3ea50ab..b3f56ed 100644
--- a/vom/testdata/types/types.vdl.go
+++ b/vom/testdata/types/types.vdl.go
@@ -141,7 +141,14 @@
 }
 
 type TestCaseTarget struct {
-	Value *TestCase
+	Value      *TestCase
+	nameTarget vdl.StringTarget
+
+	typeStringTarget vdl.StringTarget
+	hexTarget        vdl.StringTarget
+	hexVersionTarget vdl.StringTarget
+	hexTypeTarget    vdl.StringTarget
+	hexValueTarget   vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -155,26 +162,32 @@
 func (t *TestCaseTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Value":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Value))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Value))
+		return nil, target, err
 	case "TypeString":
-		val, err := &vdl.StringTarget{Value: &t.Value.TypeString}, error(nil)
-		return nil, val, err
+		t.typeStringTarget.Value = &t.Value.TypeString
+		target, err := &t.typeStringTarget, error(nil)
+		return nil, target, err
 	case "Hex":
-		val, err := &vdl.StringTarget{Value: &t.Value.Hex}, error(nil)
-		return nil, val, err
+		t.hexTarget.Value = &t.Value.Hex
+		target, err := &t.hexTarget, error(nil)
+		return nil, target, err
 	case "HexVersion":
-		val, err := &vdl.StringTarget{Value: &t.Value.HexVersion}, error(nil)
-		return nil, val, err
+		t.hexVersionTarget.Value = &t.Value.HexVersion
+		target, err := &t.hexVersionTarget, error(nil)
+		return nil, target, err
 	case "HexType":
-		val, err := &vdl.StringTarget{Value: &t.Value.HexType}, error(nil)
-		return nil, val, err
+		t.hexTypeTarget.Value = &t.Value.HexType
+		target, err := &t.hexTypeTarget, error(nil)
+		return nil, target, err
 	case "HexValue":
-		val, err := &vdl.StringTarget{Value: &t.Value.HexValue}, error(nil)
-		return nil, val, err
+		t.hexValueTarget.Value = &t.Value.HexValue
+		target, err := &t.hexValueTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_TestCase)
 	}
@@ -283,7 +296,10 @@
 }
 
 type ConvertGroupTarget struct {
-	Value *ConvertGroup
+	Value             *ConvertGroup
+	nameTarget        vdl.StringTarget
+	primaryTypeTarget vdl.TypeObjectTarget
+	valuesTarget      unnamed_5b5d616e79Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -297,14 +313,17 @@
 func (t *ConvertGroupTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "PrimaryType":
-		val, err := &vdl.TypeObjectTarget{Value: &t.Value.PrimaryType}, error(nil)
-		return nil, val, err
+		t.primaryTypeTarget.Value = &t.Value.PrimaryType
+		target, err := &t.primaryTypeTarget, error(nil)
+		return nil, target, err
 	case "Values":
-		val, err := &unnamed_5b5d616e79_Target{Value: &t.Value.Values}, error(nil)
-		return nil, val, err
+		t.valuesTarget.Value = &t.Value.Values
+		target, err := &t.valuesTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_ConvertGroup)
 	}
@@ -317,13 +336,15 @@
 	return nil
 }
 
-type unnamed_5b5d616e79_Target struct {
+// []*vdl.Value
+type unnamed_5b5d616e79Target struct {
 	Value *[]*vdl.Value
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d616e79_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d616e79Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType2) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType2)
 	}
@@ -334,13 +355,14 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d616e79_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+func (t *unnamed_5b5d616e79Target) StartElem(index int) (elem vdl.Target, _ error) {
+	target, err := vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+	return target, err
 }
-func (t *unnamed_5b5d616e79_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d616e79Target) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d616e79_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d616e79Target) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -547,7 +569,10 @@
 }
 
 type VomdataStructTarget struct {
-	Value *VomdataStruct
+	Value                  *VomdataStruct
+	encodeDecodeDataTarget unnamed_6d61705b627974655d5b5d616e79Target
+	compatDataTarget       unnamed_6d61705b737472696e675d5b5d747970656f626a656374Target
+	convertDataTarget      unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -561,14 +586,17 @@
 func (t *VomdataStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "EncodeDecodeData":
-		val, err := &unnamed_6d61705b627974655d5b5d616e79_Target{Value: &t.Value.EncodeDecodeData}, error(nil)
-		return nil, val, err
+		t.encodeDecodeDataTarget.Value = &t.Value.EncodeDecodeData
+		target, err := &t.encodeDecodeDataTarget, error(nil)
+		return nil, target, err
 	case "CompatData":
-		val, err := &unnamed_6d61705b737472696e675d5b5d747970656f626a656374_Target{Value: &t.Value.CompatData}, error(nil)
-		return nil, val, err
+		t.compatDataTarget.Value = &t.Value.CompatData
+		target, err := &t.compatDataTarget, error(nil)
+		return nil, target, err
 	case "ConvertData":
-		val, err := &unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target{Value: &t.Value.ConvertData}, error(nil)
-		return nil, val, err
+		t.convertDataTarget.Value = &t.Value.ConvertData
+		target, err := &t.convertDataTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_VomdataStruct)
 	}
@@ -581,34 +609,41 @@
 	return nil
 }
 
-type unnamed_6d61705b627974655d5b5d616e79_Target struct {
-	Value    *map[byte][]*vdl.Value
-	currKey  byte
-	currElem []*vdl.Value
+// map[byte][]*vdl.Value
+type unnamed_6d61705b627974655d5b5d616e79Target struct {
+	Value      *map[byte][]*vdl.Value
+	currKey    byte
+	currElem   []*vdl.Value
+	keyTarget  vdl.ByteTarget
+	elemTarget unnamed_5b5d616e79Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b627974655d5b5d616e79_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b627974655d5b5d616e79Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType4) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType4)
 	}
 	*t.Value = make(map[byte][]*vdl.Value)
 	return t, nil
 }
-func (t *unnamed_6d61705b627974655d5b5d616e79_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b627974655d5b5d616e79Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = byte(0)
-	return &vdl.ByteTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b627974655d5b5d616e79_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b627974655d5b5d616e79Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = []*vdl.Value(nil)
-	return &unnamed_5b5d616e79_Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b627974655d5b5d616e79_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b627974655d5b5d616e79Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b627974655d5b5d616e79_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b627974655d5b5d616e79Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -616,34 +651,41 @@
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d5b5d747970656f626a656374_Target struct {
-	Value    *map[string][]*vdl.Type
-	currKey  string
-	currElem []*vdl.Type
+// map[string][]*vdl.Type
+type unnamed_6d61705b737472696e675d5b5d747970656f626a656374Target struct {
+	Value      *map[string][]*vdl.Type
+	currKey    string
+	currElem   []*vdl.Type
+	keyTarget  vdl.StringTarget
+	elemTarget unnamed_5b5d747970656f626a656374Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType5) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType5)
 	}
 	*t.Value = make(map[string][]*vdl.Type)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = []*vdl.Type(nil)
-	return &unnamed_5b5d747970656f626a656374_Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d5b5d747970656f626a656374Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -651,13 +693,15 @@
 	return nil
 }
 
-type unnamed_5b5d747970656f626a656374_Target struct {
-	Value *[]*vdl.Type
+// []*vdl.Type
+type unnamed_5b5d747970656f626a656374Target struct {
+	Value      *[]*vdl.Type
+	elemTarget vdl.TypeObjectTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d747970656f626a656374_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d747970656f626a656374Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType6) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType6)
 	}
@@ -668,45 +712,54 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d747970656f626a656374_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.TypeObjectTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d747970656f626a656374Target) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d747970656f626a656374_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d747970656f626a656374Target) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d747970656f626a656374_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d747970656f626a656374Target) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
-type unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target struct {
-	Value    *map[string][]ConvertGroup
-	currKey  string
-	currElem []ConvertGroup
+// map[string][]ConvertGroup
+type unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget struct {
+	Value      *map[string][]ConvertGroup
+	currKey    string
+	currElem   []ConvertGroup
+	keyTarget  vdl.StringTarget
+	elemTarget unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType7) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType7)
 	}
 	*t.Value = make(map[string][]ConvertGroup)
 	return t, nil
 }
-func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = []ConvertGroup(nil)
-	return &unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b737472696e675d5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -714,13 +767,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target struct {
-	Value *[]ConvertGroup
+// []ConvertGroup
+type unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget struct {
+	Value      *[]ConvertGroup
+	elemTarget ConvertGroupTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType8) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType8)
 	}
@@ -731,13 +786,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &ConvertGroupTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e436f6e7665727447726f7570207374727563747b4e616d6520737472696e673b5072696d6172795479706520747970656f626a6563743b56616c756573205b5d616e797dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -1614,8 +1671,10 @@
 	return &NArray2Uint64Target{Value: m}
 }
 
+// NArray2Uint64
 type NArray2Uint64Target struct {
-	Value *NArray2Uint64
+	Value      *NArray2Uint64
+	elemTarget vdl.Uint64Target
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -1627,7 +1686,9 @@
 	return t, nil
 }
 func (t *NArray2Uint64Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.Uint64Target{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *NArray2Uint64Target) FinishElem(elem vdl.Target) error {
 	return nil
@@ -1671,8 +1732,10 @@
 	return &NListUint64Target{Value: m}
 }
 
+// NListUint64
 type NListUint64Target struct {
-	Value *NListUint64
+	Value      *NListUint64
+	elemTarget vdl.Uint64Target
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -1689,7 +1752,9 @@
 	return t, nil
 }
 func (t *NListUint64Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.Uint64Target{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *NListUint64Target) FinishElem(elem vdl.Target) error {
 	return nil
@@ -1734,8 +1799,9 @@
 }
 
 type NSetUint64Target struct {
-	Value   *NSetUint64
-	currKey uint64
+	Value     *NSetUint64
+	currKey   uint64
+	keyTarget vdl.Uint64Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
@@ -1749,7 +1815,9 @@
 }
 func (t *NSetUint64Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint64(0)
-	return &vdl.Uint64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *NSetUint64Target) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
@@ -1805,9 +1873,11 @@
 }
 
 type NMapUint64StringTarget struct {
-	Value    *NMapUint64String
-	currKey  uint64
-	currElem string
+	Value      *NMapUint64String
+	currKey    uint64
+	currElem   string
+	keyTarget  vdl.Uint64Target
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -1821,11 +1891,15 @@
 }
 func (t *NMapUint64StringTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint64(0)
-	return &vdl.Uint64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *NMapUint64StringTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *NMapUint64StringTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -1906,7 +1980,10 @@
 }
 
 type NStructTarget struct {
-	Value *NStruct
+	Value   *NStruct
+	aTarget vdl.BoolTarget
+	bTarget vdl.StringTarget
+	cTarget vdl.Int64Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1920,14 +1997,17 @@
 func (t *NStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &vdl.BoolTarget{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		t.aTarget.Value = &t.Value.A
+		target, err := &t.aTarget, error(nil)
+		return nil, target, err
 	case "B":
-		val, err := &vdl.StringTarget{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	case "C":
-		val, err := &vdl.Int64Target{Value: &t.Value.C}, error(nil)
-		return nil, val, err
+		t.cTarget.Value = &t.Value.C
+		target, err := &t.cTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_NStruct)
 	}
@@ -2310,7 +2390,13 @@
 }
 
 type MStructTarget struct {
-	Value *MStruct
+	Value   *MStruct
+	aTarget vdl.BoolTarget
+	bTarget NBoolTarget
+	cTarget MBoolTarget
+	dTarget unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347dTarget
+	eTarget vdl.TypeObjectTarget
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2324,23 +2410,28 @@
 func (t *MStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &vdl.BoolTarget{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		t.aTarget.Value = &t.Value.A
+		target, err := &t.aTarget, error(nil)
+		return nil, target, err
 	case "B":
-		val, err := &NBoolTarget{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	case "C":
-		val, err := &MBoolTarget{Value: &t.Value.C}, error(nil)
-		return nil, val, err
+		t.cTarget.Value = &t.Value.C
+		target, err := &t.cTarget, error(nil)
+		return nil, target, err
 	case "D":
-		val, err := &unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347d_Target{Value: &t.Value.D}, error(nil)
-		return nil, val, err
+		t.dTarget.Value = &t.Value.D
+		target, err := &t.dTarget, error(nil)
+		return nil, target, err
 	case "E":
-		val, err := &vdl.TypeObjectTarget{Value: &t.Value.E}, error(nil)
-		return nil, val, err
+		t.eTarget.Value = &t.Value.E
+		target, err := &t.eTarget, error(nil)
+		return nil, target, err
 	case "F":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.F))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.F))
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_MStruct)
 	}
@@ -2353,27 +2444,30 @@
 	return nil
 }
 
-type unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347d_Target struct {
-	Value **NStruct
+// Optional NStruct
+type unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347dTarget struct {
+	Value      **NStruct
+	elemTarget NStructTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &NStruct{}
 	}
-	target, err := &NStructTarget{Value: *t.Value}, error(nil)
+	t.elemTarget.Value = *t.Value
+	target, err := &t.elemTarget, error(nil)
 	if err != nil {
 		return nil, err
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4e537472756374207374727563747b4120626f6f6c3b4220737472696e673b4320696e7436347dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
@@ -2414,8 +2508,10 @@
 	return &MListTarget{Value: m}
 }
 
+// MList
 type MListTarget struct {
-	Value *MList
+	Value      *MList
+	elemTarget NListUint64Target
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2432,7 +2528,9 @@
 	return t, nil
 }
 func (t *MListTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &NListUint64Target{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *MListTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -2486,9 +2584,11 @@
 }
 
 type MMapTarget struct {
-	Value    *MMap
-	currKey  NFloat32
-	currElem NListUint64
+	Value      *MMap
+	currKey    NFloat32
+	currElem   NListUint64
+	keyTarget  NFloat32Target
+	elemTarget NListUint64Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -2502,11 +2602,15 @@
 }
 func (t *MMapTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = NFloat32(0)
-	return &NFloat32Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *MMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = NListUint64(nil)
-	return &NListUint64Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *MMapTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -2591,8 +2695,10 @@
 	return &MInt8SliceTarget{Value: m}
 }
 
+// MInt8Slice
 type MInt8SliceTarget struct {
-	Value *MInt8Slice
+	Value      *MInt8Slice
+	elemTarget vdl.Int8Target
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2609,7 +2715,9 @@
 	return t, nil
 }
 func (t *MInt8SliceTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.Int8Target{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *MInt8SliceTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -2655,8 +2763,10 @@
 	return &RecATarget{Value: m}
 }
 
+// RecA
 type RecATarget struct {
 	Value *RecA
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2673,7 +2783,8 @@
 	return t, nil
 }
 func (t *RecATarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &RecATarget{Value: &(*t.Value)[index]}, error(nil)
+	target, err := &RecATarget{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
 func (t *RecATarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -2718,8 +2829,10 @@
 	return &RecXTarget{Value: m}
 }
 
+// RecX
 type RecXTarget struct {
 	Value *RecX
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2736,7 +2849,8 @@
 	return t, nil
 }
 func (t *RecXTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &RecYTarget{Value: &(*t.Value)[index]}, error(nil)
+	target, err := &RecYTarget{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
 func (t *RecXTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -2746,8 +2860,10 @@
 	return nil
 }
 
+// RecY
 type RecYTarget struct {
 	Value *RecY
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2764,7 +2880,8 @@
 	return t, nil
 }
 func (t *RecYTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &RecXTarget{Value: &(*t.Value)[index]}, error(nil)
+	target, err := &RecXTarget{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
 func (t *RecYTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -2844,8 +2961,10 @@
 	return &Rec1Target{Value: m}
 }
 
+// Rec1
 type Rec1Target struct {
 	Value *Rec1
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2862,7 +2981,8 @@
 	return t, nil
 }
 func (t *Rec1Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &Rec2Target{Value: &(*t.Value)[index]}, error(nil)
+	target, err := &Rec2Target{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
 func (t *Rec1Target) FinishElem(elem vdl.Target) error {
 	return nil
@@ -2872,8 +2992,10 @@
 	return nil
 }
 
+// Rec2
 type Rec2Target struct {
 	Value *Rec2
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2890,7 +3012,8 @@
 	return t, nil
 }
 func (t *Rec2Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &Rec3Target{Value: &(*t.Value)[index]}, error(nil)
+	target, err := &Rec3Target{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
 func (t *Rec2Target) FinishElem(elem vdl.Target) error {
 	return nil
@@ -2900,8 +3023,10 @@
 	return nil
 }
 
+// Rec3
 type Rec3Target struct {
 	Value *Rec3
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2918,7 +3043,8 @@
 	return t, nil
 }
 func (t *Rec3Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &Rec4Target{Value: &(*t.Value)[index]}, error(nil)
+	target, err := &Rec4Target{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
 func (t *Rec3Target) FinishElem(elem vdl.Target) error {
 	return nil
@@ -2928,8 +3054,10 @@
 	return nil
 }
 
+// Rec4
 type Rec4Target struct {
 	Value *Rec4
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -2946,7 +3074,8 @@
 	return t, nil
 }
 func (t *Rec4Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &Rec1Target{Value: &(*t.Value)[index]}, error(nil)
+	target, err := &Rec1Target{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
 func (t *Rec4Target) FinishElem(elem vdl.Target) error {
 	return nil
@@ -3110,6 +3239,7 @@
 
 type RecStructTarget struct {
 	Value *RecStruct
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -3123,8 +3253,8 @@
 func (t *RecStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747d_Target{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		target, err := &unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747dTarget{Value: &t.Value.A}, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_RecStruct)
 	}
@@ -3137,13 +3267,15 @@
 	return nil
 }
 
-type unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747d_Target struct {
+// Optional RecStruct
+type unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747dTarget struct {
 	Value **RecStruct
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &RecStruct{}
 	}
@@ -3153,11 +3285,11 @@
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563537472756374207374727563747b41203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265635374727563747dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
@@ -3247,7 +3379,11 @@
 }
 
 type Rec1234Target struct {
-	Value *Rec1234
+	Value    *Rec1234
+	r1Target Rec1Target
+	r2Target Rec2Target
+	r3Target Rec3Target
+	r4Target Rec4Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -3261,17 +3397,21 @@
 func (t *Rec1234Target) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "R1":
-		val, err := &Rec1Target{Value: &t.Value.R1}, error(nil)
-		return nil, val, err
+		t.r1Target.Value = &t.Value.R1
+		target, err := &t.r1Target, error(nil)
+		return nil, target, err
 	case "R2":
-		val, err := &Rec2Target{Value: &t.Value.R2}, error(nil)
-		return nil, val, err
+		t.r2Target.Value = &t.Value.R2
+		target, err := &t.r2Target, error(nil)
+		return nil, target, err
 	case "R3":
-		val, err := &Rec3Target{Value: &t.Value.R3}, error(nil)
-		return nil, val, err
+		t.r3Target.Value = &t.Value.R3
+		target, err := &t.r3Target, error(nil)
+		return nil, target, err
 	case "R4":
-		val, err := &Rec4Target{Value: &t.Value.R4}, error(nil)
-		return nil, val, err
+		t.r4Target.Value = &t.Value.R4
+		target, err := &t.r4Target, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_Rec1234)
 	}
@@ -3375,6 +3515,8 @@
 
 type Rec1234ATarget struct {
 	Value *Rec1234A
+
+	rec1234Target unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -3388,11 +3530,12 @@
 func (t *Rec1234ATarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		target, err := &unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget{Value: &t.Value.A}, error(nil)
+		return nil, target, err
 	case "Rec1234":
-		val, err := &unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d_Target{Value: &t.Value.Rec1234}, error(nil)
-		return nil, val, err
+		t.rec1234Target.Value = &t.Value.Rec1234
+		target, err := &t.rec1234Target, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_Rec1234A)
 	}
@@ -3405,13 +3548,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target struct {
+// []Rec1234A
+type unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget struct {
 	Value *[]Rec1234A
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType14) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType14)
 	}
@@ -3422,24 +3567,27 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &Rec1234ATarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	target, err := &Rec1234ATarget{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333441207374727563747b41205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334413b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d_Target struct {
-	Value *[]Rec1234
+// []Rec1234
+type unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347dTarget struct {
+	Value      *[]Rec1234
+	elemTarget Rec1234Target
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType15) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType15)
 	}
@@ -3450,13 +3598,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &Rec1234Target{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -3552,6 +3702,8 @@
 
 type Rec1234BTarget struct {
 	Value *Rec1234B
+
+	rec1234Target unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -3565,11 +3717,12 @@
 func (t *Rec1234BTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "B":
-		val, err := &unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		target, err := &unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget{Value: &t.Value.B}, error(nil)
+		return nil, target, err
 	case "Rec1234":
-		val, err := &unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d_Target{Value: &t.Value.Rec1234}, error(nil)
-		return nil, val, err
+		t.rec1234Target.Value = &t.Value.Rec1234
+		target, err := &t.rec1234Target, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_Rec1234B)
 	}
@@ -3582,13 +3735,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target struct {
+// []Rec1234B
+type unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget struct {
 	Value *[]Rec1234B
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType17) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType17)
 	}
@@ -3599,13 +3754,14 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &Rec1234BTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	target, err := &Rec1234BTarget{Value: &(*t.Value)[index]}, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e5265633132333442207374727563747b42205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334423b52656331323334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331323334207374727563747b523120762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656331205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656332205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656333205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e52656334205b5d762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563313b523220762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563323b523320762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563333b523420762e696f2f7632332f766f6d2f74657374646174612f74797065732e526563347d7dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -3666,7 +3822,9 @@
 }
 
 type Rec1234AllTarget struct {
-	Value *Rec1234All
+	Value   *Rec1234All
+	aTarget Rec1234ATarget
+	bTarget Rec1234BTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -3680,11 +3838,13 @@
 func (t *Rec1234AllTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &Rec1234ATarget{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		t.aTarget.Value = &t.Value.A
+		target, err := &t.aTarget, error(nil)
+		return nil, target, err
 	case "B":
-		val, err := &Rec1234BTarget{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_Rec1234All)
 	}
@@ -3732,8 +3892,10 @@
 	return &ListStringTarget{Value: m}
 }
 
+// ListString
 type ListStringTarget struct {
-	Value *ListString
+	Value      *ListString
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -3750,7 +3912,9 @@
 	return t, nil
 }
 func (t *ListStringTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.StringTarget{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *ListStringTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -3794,8 +3958,10 @@
 	return &Array3StringTarget{Value: m}
 }
 
+// Array3String
 type Array3StringTarget struct {
-	Value *Array3String
+	Value      *Array3String
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -3807,7 +3973,9 @@
 	return t, nil
 }
 func (t *Array3StringTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.StringTarget{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *Array3StringTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -3851,8 +4019,10 @@
 	return &Array4StringTarget{Value: m}
 }
 
+// Array4String
 type Array4StringTarget struct {
-	Value *Array4String
+	Value      *Array4String
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -3864,7 +4034,9 @@
 	return t, nil
 }
 func (t *Array4StringTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return &vdl.StringTarget{Value: &(*t.Value)[index]}, error(nil)
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *Array4StringTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -3941,7 +4113,10 @@
 }
 
 type AbcStructTarget struct {
-	Value *AbcStruct
+	Value   *AbcStruct
+	aTarget vdl.BoolTarget
+	bTarget vdl.StringTarget
+	cTarget vdl.Int64Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -3955,14 +4130,17 @@
 func (t *AbcStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &vdl.BoolTarget{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		t.aTarget.Value = &t.Value.A
+		target, err := &t.aTarget, error(nil)
+		return nil, target, err
 	case "B":
-		val, err := &vdl.StringTarget{Value: &t.Value.B}, error(nil)
-		return nil, val, err
+		t.bTarget.Value = &t.Value.B
+		target, err := &t.bTarget, error(nil)
+		return nil, target, err
 	case "C":
-		val, err := &vdl.Int64Target{Value: &t.Value.C}, error(nil)
-		return nil, val, err
+		t.cTarget.Value = &t.Value.C
+		target, err := &t.cTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_AbcStruct)
 	}
@@ -4053,7 +4231,10 @@
 }
 
 type AdeStructTarget struct {
-	Value *AdeStruct
+	Value   *AdeStruct
+	aTarget vdl.BoolTarget
+
+	eTarget vdl.TypeObjectTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -4067,14 +4248,16 @@
 func (t *AdeStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "A":
-		val, err := &vdl.BoolTarget{Value: &t.Value.A}, error(nil)
-		return nil, val, err
+		t.aTarget.Value = &t.Value.A
+		target, err := &t.aTarget, error(nil)
+		return nil, target, err
 	case "D":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.D))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.D))
+		return nil, target, err
 	case "E":
-		val, err := &vdl.TypeObjectTarget{Value: &t.Value.E}, error(nil)
-		return nil, val, err
+		t.eTarget.Value = &t.Value.E
+		target, err := &t.eTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_AdeStruct)
 	}
@@ -4155,7 +4338,10 @@
 }
 
 type XyzStructTarget struct {
-	Value *XyzStruct
+	Value   *XyzStruct
+	xTarget vdl.BoolTarget
+	yTarget MBoolTarget
+	zTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -4169,14 +4355,17 @@
 func (t *XyzStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "X":
-		val, err := &vdl.BoolTarget{Value: &t.Value.X}, error(nil)
-		return nil, val, err
+		t.xTarget.Value = &t.Value.X
+		target, err := &t.xTarget, error(nil)
+		return nil, target, err
 	case "Y":
-		val, err := &MBoolTarget{Value: &t.Value.Y}, error(nil)
-		return nil, val, err
+		t.yTarget.Value = &t.Value.Y
+		target, err := &t.yTarget, error(nil)
+		return nil, target, err
 	case "Z":
-		val, err := &vdl.StringTarget{Value: &t.Value.Z}, error(nil)
-		return nil, val, err
+		t.zTarget.Value = &t.Value.Z
+		target, err := &t.zTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_XyzStruct)
 	}
@@ -4245,7 +4434,9 @@
 }
 
 type YzStructTarget struct {
-	Value *YzStruct
+	Value   *YzStruct
+	yTarget NBoolTarget
+	zTarget NStringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -4259,11 +4450,13 @@
 func (t *YzStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Y":
-		val, err := &NBoolTarget{Value: &t.Value.Y}, error(nil)
-		return nil, val, err
+		t.yTarget.Value = &t.Value.Y
+		target, err := &t.yTarget, error(nil)
+		return nil, target, err
 	case "Z":
-		val, err := &NStringTarget{Value: &t.Value.Z}, error(nil)
-		return nil, val, err
+		t.zTarget.Value = &t.Value.Z
+		target, err := &t.zTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_YzStruct)
 	}
@@ -4317,7 +4510,8 @@
 }
 
 type ZStructTarget struct {
-	Value *ZStruct
+	Value   *ZStruct
+	zTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -4331,8 +4525,9 @@
 func (t *ZStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Z":
-		val, err := &vdl.StringTarget{Value: &t.Value.Z}, error(nil)
-		return nil, val, err
+		t.zTarget.Value = &t.Value.Z
+		target, err := &t.zTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_ZStruct)
 	}
@@ -4412,7 +4607,10 @@
 }
 
 type MapOnlyStructTarget struct {
-	Value *MapOnlyStruct
+	Value      *MapOnlyStruct
+	key1Target vdl.Int64Target
+	key2Target vdl.Uint32Target
+	key3Target vdl.Complex128Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -4426,14 +4624,17 @@
 func (t *MapOnlyStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Key1":
-		val, err := &vdl.Int64Target{Value: &t.Value.Key1}, error(nil)
-		return nil, val, err
+		t.key1Target.Value = &t.Value.Key1
+		target, err := &t.key1Target, error(nil)
+		return nil, target, err
 	case "Key2":
-		val, err := &vdl.Uint32Target{Value: &t.Value.Key2}, error(nil)
-		return nil, val, err
+		t.key2Target.Value = &t.Value.Key2
+		target, err := &t.key2Target, error(nil)
+		return nil, target, err
 	case "Key3":
-		val, err := &vdl.Complex128Target{Value: &t.Value.Key3}, error(nil)
-		return nil, val, err
+		t.key3Target.Value = &t.Value.Key3
+		target, err := &t.key3Target, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_MapOnlyStruct)
 	}
@@ -4488,9 +4689,11 @@
 }
 
 type StructOnlyMapTarget struct {
-	Value    *StructOnlyMap
-	currKey  string
-	currElem uint64
+	Value      *StructOnlyMap
+	currKey    string
+	currElem   uint64
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.Uint64Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -4504,11 +4707,15 @@
 }
 func (t *StructOnlyMapTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *StructOnlyMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = uint64(0)
-	return &vdl.Uint64Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *StructOnlyMapTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -4589,7 +4796,10 @@
 }
 
 type MapSetStructTarget struct {
-	Value *MapSetStruct
+	Value      *MapSetStruct
+	featTarget vdl.BoolTarget
+	tireTarget vdl.BoolTarget
+	eelTarget  vdl.BoolTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -4603,14 +4813,17 @@
 func (t *MapSetStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Feat":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Feat}, error(nil)
-		return nil, val, err
+		t.featTarget.Value = &t.Value.Feat
+		target, err := &t.featTarget, error(nil)
+		return nil, target, err
 	case "Tire":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Tire}, error(nil)
-		return nil, val, err
+		t.tireTarget.Value = &t.Value.Tire
+		target, err := &t.tireTarget, error(nil)
+		return nil, target, err
 	case "Eel":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Eel}, error(nil)
-		return nil, val, err
+		t.eelTarget.Value = &t.Value.Eel
+		target, err := &t.eelTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_MapSetStruct)
 	}
@@ -4665,9 +4878,11 @@
 }
 
 type SetStructMapTarget struct {
-	Value    *SetStructMap
-	currKey  string
-	currElem bool
+	Value      *SetStructMap
+	currKey    string
+	currElem   bool
+	keyTarget  vdl.StringTarget
+	elemTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -4681,11 +4896,15 @@
 }
 func (t *SetStructMapTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *SetStructMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = false
-	return &vdl.BoolTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *SetStructMapTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -4734,8 +4953,9 @@
 }
 
 type MapStructSetTarget struct {
-	Value   *MapStructSet
-	currKey string
+	Value     *MapStructSet
+	currKey   string
+	keyTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
@@ -4749,7 +4969,9 @@
 }
 func (t *MapStructSetTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = ""
-	return &vdl.StringTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *MapStructSetTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
@@ -4805,9 +5027,11 @@
 }
 
 type SetOnlyMapTarget struct {
-	Value    *SetOnlyMap
-	currKey  float64
-	currElem bool
+	Value      *SetOnlyMap
+	currKey    float64
+	currElem   bool
+	keyTarget  vdl.Float64Target
+	elemTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -4821,11 +5045,15 @@
 }
 func (t *SetOnlyMapTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = float64(0)
-	return &vdl.Float64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *SetOnlyMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = false
-	return &vdl.BoolTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *SetOnlyMapTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -4888,9 +5116,11 @@
 }
 
 type SometimesSetMapTarget struct {
-	Value    *SometimesSetMap
-	currKey  float64
-	currElem *vdl.Value
+	Value     *SometimesSetMap
+	currKey   float64
+	currElem  *vdl.Value
+	keyTarget vdl.Float64Target
+
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -4904,11 +5134,14 @@
 }
 func (t *SometimesSetMapTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = float64(0)
-	return &vdl.Float64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *SometimesSetMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = (*vdl.Value)(nil)
-	return vdl.ReflectTarget(reflect.ValueOf(&t.currElem))
+	target, err := vdl.ReflectTarget(reflect.ValueOf(&t.currElem))
+	return target, err
 }
 func (t *SometimesSetMapTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -4957,8 +5190,9 @@
 }
 
 type MapOnlySetTarget struct {
-	Value   *MapOnlySet
-	currKey float64
+	Value     *MapOnlySet
+	currKey   float64
+	keyTarget vdl.Float64Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
@@ -4972,7 +5206,9 @@
 }
 func (t *MapOnlySetTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = float64(0)
-	return &vdl.Float64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlySetTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
@@ -5021,8 +5257,9 @@
 }
 
 type SetOnlyATarget struct {
-	Value   *SetOnlyA
-	currKey bool
+	Value     *SetOnlyA
+	currKey   bool
+	keyTarget vdl.BoolTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
@@ -5036,7 +5273,9 @@
 }
 func (t *SetOnlyATarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = false
-	return &vdl.BoolTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *SetOnlyATarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
@@ -5086,8 +5325,9 @@
 }
 
 type SetOnlyA2Target struct {
-	Value   *SetOnlyA2
-	currKey NBool
+	Value     *SetOnlyA2
+	currKey   NBool
+	keyTarget NBoolTarget
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
@@ -5101,7 +5341,9 @@
 }
 func (t *SetOnlyA2Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = NBool(false)
-	return &NBoolTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *SetOnlyA2Target) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
@@ -5150,8 +5392,9 @@
 }
 
 type SetOnlyBTarget struct {
-	Value   *SetOnlyB
-	currKey int16
+	Value     *SetOnlyB
+	currKey   int16
+	keyTarget vdl.Int16Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
@@ -5165,7 +5408,9 @@
 }
 func (t *SetOnlyBTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int16(0)
-	return &vdl.Int16Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *SetOnlyBTarget) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
@@ -5215,8 +5460,9 @@
 }
 
 type SetOnlyB2Target struct {
-	Value   *SetOnlyB2
-	currKey NInt16
+	Value     *SetOnlyB2
+	currKey   NInt16
+	keyTarget NInt16Target
 	vdl.TargetBase
 	vdl.SetTargetBase
 }
@@ -5230,7 +5476,9 @@
 }
 func (t *SetOnlyB2Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = NInt16(0)
-	return &NInt16Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *SetOnlyB2Target) FinishKey(key vdl.Target) error {
 	(*t.Value)[t.currKey] = struct{}{}
@@ -5286,9 +5534,11 @@
 }
 
 type MapOnlyATarget struct {
-	Value    *MapOnlyA
-	currKey  uint32
-	currElem uint32
+	Value      *MapOnlyA
+	currKey    uint32
+	currElem   uint32
+	keyTarget  vdl.Uint32Target
+	elemTarget vdl.Uint32Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -5302,11 +5552,15 @@
 }
 func (t *MapOnlyATarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = uint32(0)
-	return &vdl.Uint32Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlyATarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = uint32(0)
-	return &vdl.Uint32Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlyATarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -5362,9 +5616,11 @@
 }
 
 type MapOnlyA2Target struct {
-	Value    *MapOnlyA2
-	currKey  int64
-	currElem float64
+	Value      *MapOnlyA2
+	currKey    int64
+	currElem   float64
+	keyTarget  vdl.Int64Target
+	elemTarget vdl.Float64Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -5378,11 +5634,15 @@
 }
 func (t *MapOnlyA2Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int64(0)
-	return &vdl.Int64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlyA2Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = float64(0)
-	return &vdl.Float64Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlyA2Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -5438,9 +5698,11 @@
 }
 
 type MapOnlyBTarget struct {
-	Value    *MapOnlyB
-	currKey  bool
-	currElem string
+	Value      *MapOnlyB
+	currKey    bool
+	currElem   string
+	keyTarget  vdl.BoolTarget
+	elemTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -5454,11 +5716,15 @@
 }
 func (t *MapOnlyBTarget) StartKey() (key vdl.Target, _ error) {
 	t.currKey = false
-	return &vdl.BoolTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlyBTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = ""
-	return &vdl.StringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlyBTarget) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -5516,9 +5782,11 @@
 }
 
 type MapOnlyB2Target struct {
-	Value    *MapOnlyB2
-	currKey  NBool
-	currElem NString
+	Value      *MapOnlyB2
+	currKey    NBool
+	currElem   NString
+	keyTarget  NBoolTarget
+	elemTarget NStringTarget
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
@@ -5532,11 +5800,15 @@
 }
 func (t *MapOnlyB2Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = NBool(false)
-	return &NBoolTarget{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlyB2Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = NString("")
-	return &NStringTarget{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
 func (t *MapOnlyB2Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
@@ -5979,6 +6251,7 @@
 
 type StructAnyTarget struct {
 	Value *StructAny
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -5992,8 +6265,8 @@
 func (t *StructAnyTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Any":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Any))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Any))
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_StructAny)
 	}
@@ -6071,7 +6344,8 @@
 }
 
 type StructMapTarget struct {
-	Value *StructMap
+	Value     *StructMap
+	mapTarget unnamed_6d61705b696e7436345d696e743634Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -6085,8 +6359,9 @@
 func (t *StructMapTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Map":
-		val, err := &unnamed_6d61705b696e7436345d696e743634_Target{Value: &t.Value.Map}, error(nil)
-		return nil, val, err
+		t.mapTarget.Value = &t.Value.Map
+		target, err := &t.mapTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_StructMap)
 	}
@@ -6099,34 +6374,41 @@
 	return nil
 }
 
-type unnamed_6d61705b696e7436345d696e743634_Target struct {
-	Value    *map[int64]int64
-	currKey  int64
-	currElem int64
+// map[int64]int64
+type unnamed_6d61705b696e7436345d696e743634Target struct {
+	Value      *map[int64]int64
+	currKey    int64
+	currElem   int64
+	keyTarget  vdl.Int64Target
+	elemTarget vdl.Int64Target
 	vdl.TargetBase
 	vdl.MapTargetBase
 }
 
-func (t *unnamed_6d61705b696e7436345d696e743634_Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
+func (t *unnamed_6d61705b696e7436345d696e743634Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
 	if !vdl.Compatible(tt, __VDLType28) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType28)
 	}
 	*t.Value = make(map[int64]int64)
 	return t, nil
 }
-func (t *unnamed_6d61705b696e7436345d696e743634_Target) StartKey() (key vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7436345d696e743634Target) StartKey() (key vdl.Target, _ error) {
 	t.currKey = int64(0)
-	return &vdl.Int64Target{Value: &t.currKey}, error(nil)
+	t.keyTarget.Value = &t.currKey
+	target, err := &t.keyTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7436345d696e743634_Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
+func (t *unnamed_6d61705b696e7436345d696e743634Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
 	t.currElem = int64(0)
-	return &vdl.Int64Target{Value: &t.currElem}, error(nil)
+	t.elemTarget.Value = &t.currElem
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_6d61705b696e7436345d696e743634_Target) FinishField(key, field vdl.Target) error {
+func (t *unnamed_6d61705b696e7436345d696e743634Target) FinishField(key, field vdl.Target) error {
 	(*t.Value)[t.currKey] = t.currElem
 	return nil
 }
-func (t *unnamed_6d61705b696e7436345d696e743634_Target) FinishMap(elem vdl.MapTarget) error {
+func (t *unnamed_6d61705b696e7436345d696e743634Target) FinishMap(elem vdl.MapTarget) error {
 	if len(*t.Value) == 0 {
 		*t.Value = nil
 	}
@@ -6494,7 +6776,31 @@
 }
 
 type StructManyTypesTarget struct {
-	Value *StructManyTypes
+	Value                  *StructManyTypes
+	boolTarget             vdl.BoolTarget
+	aByteTarget            vdl.ByteTarget
+	int16Target            vdl.Int16Target
+	int32Target            vdl.Int32Target
+	int64Target            vdl.Int64Target
+	uint16Target           vdl.Uint16Target
+	uint32Target           vdl.Uint32Target
+	uint64Target           vdl.Uint64Target
+	stringTarget           vdl.StringTarget
+	bytesTarget            vdl.BytesTarget
+	float32Target          vdl.Float32Target
+	float64Target          vdl.Float64Target
+	complex64Target        vdl.Complex64Target
+	complex128Target       vdl.Complex128Target
+	foodEnumTarget         FoodEnumTarget
+	nEnumTarget            NEnumTarget
+	nListUint64Target      NListUint64Target
+	nByteArrayTarget       NByteArrayTarget
+	nArray2Uint64Target    NArray2Uint64Target
+	nSetUint64Target       NSetUint64Target
+	nMapUint64StringTarget NMapUint64StringTarget
+	nStructTarget          NStructTarget
+
+	typeObjectTarget vdl.TypeObjectTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -6508,77 +6814,100 @@
 func (t *StructManyTypesTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Bool":
-		val, err := &vdl.BoolTarget{Value: &t.Value.Bool}, error(nil)
-		return nil, val, err
+		t.boolTarget.Value = &t.Value.Bool
+		target, err := &t.boolTarget, error(nil)
+		return nil, target, err
 	case "AByte":
-		val, err := &vdl.ByteTarget{Value: &t.Value.AByte}, error(nil)
-		return nil, val, err
+		t.aByteTarget.Value = &t.Value.AByte
+		target, err := &t.aByteTarget, error(nil)
+		return nil, target, err
 	case "Int16":
-		val, err := &vdl.Int16Target{Value: &t.Value.Int16}, error(nil)
-		return nil, val, err
+		t.int16Target.Value = &t.Value.Int16
+		target, err := &t.int16Target, error(nil)
+		return nil, target, err
 	case "Int32":
-		val, err := &vdl.Int32Target{Value: &t.Value.Int32}, error(nil)
-		return nil, val, err
+		t.int32Target.Value = &t.Value.Int32
+		target, err := &t.int32Target, error(nil)
+		return nil, target, err
 	case "Int64":
-		val, err := &vdl.Int64Target{Value: &t.Value.Int64}, error(nil)
-		return nil, val, err
+		t.int64Target.Value = &t.Value.Int64
+		target, err := &t.int64Target, error(nil)
+		return nil, target, err
 	case "Uint16":
-		val, err := &vdl.Uint16Target{Value: &t.Value.Uint16}, error(nil)
-		return nil, val, err
+		t.uint16Target.Value = &t.Value.Uint16
+		target, err := &t.uint16Target, error(nil)
+		return nil, target, err
 	case "Uint32":
-		val, err := &vdl.Uint32Target{Value: &t.Value.Uint32}, error(nil)
-		return nil, val, err
+		t.uint32Target.Value = &t.Value.Uint32
+		target, err := &t.uint32Target, error(nil)
+		return nil, target, err
 	case "Uint64":
-		val, err := &vdl.Uint64Target{Value: &t.Value.Uint64}, error(nil)
-		return nil, val, err
+		t.uint64Target.Value = &t.Value.Uint64
+		target, err := &t.uint64Target, error(nil)
+		return nil, target, err
 	case "String":
-		val, err := &vdl.StringTarget{Value: &t.Value.String}, error(nil)
-		return nil, val, err
+		t.stringTarget.Value = &t.Value.String
+		target, err := &t.stringTarget, error(nil)
+		return nil, target, err
 	case "Bytes":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Bytes}, error(nil)
-		return nil, val, err
+		t.bytesTarget.Value = &t.Value.Bytes
+		target, err := &t.bytesTarget, error(nil)
+		return nil, target, err
 	case "Float32":
-		val, err := &vdl.Float32Target{Value: &t.Value.Float32}, error(nil)
-		return nil, val, err
+		t.float32Target.Value = &t.Value.Float32
+		target, err := &t.float32Target, error(nil)
+		return nil, target, err
 	case "Float64":
-		val, err := &vdl.Float64Target{Value: &t.Value.Float64}, error(nil)
-		return nil, val, err
+		t.float64Target.Value = &t.Value.Float64
+		target, err := &t.float64Target, error(nil)
+		return nil, target, err
 	case "Complex64":
-		val, err := &vdl.Complex64Target{Value: &t.Value.Complex64}, error(nil)
-		return nil, val, err
+		t.complex64Target.Value = &t.Value.Complex64
+		target, err := &t.complex64Target, error(nil)
+		return nil, target, err
 	case "Complex128":
-		val, err := &vdl.Complex128Target{Value: &t.Value.Complex128}, error(nil)
-		return nil, val, err
+		t.complex128Target.Value = &t.Value.Complex128
+		target, err := &t.complex128Target, error(nil)
+		return nil, target, err
 	case "FoodEnum":
-		val, err := &FoodEnumTarget{Value: &t.Value.FoodEnum}, error(nil)
-		return nil, val, err
+		t.foodEnumTarget.Value = &t.Value.FoodEnum
+		target, err := &t.foodEnumTarget, error(nil)
+		return nil, target, err
 	case "NEnum":
-		val, err := &NEnumTarget{Value: &t.Value.NEnum}, error(nil)
-		return nil, val, err
+		t.nEnumTarget.Value = &t.Value.NEnum
+		target, err := &t.nEnumTarget, error(nil)
+		return nil, target, err
 	case "NListUint64":
-		val, err := &NListUint64Target{Value: &t.Value.NListUint64}, error(nil)
-		return nil, val, err
+		t.nListUint64Target.Value = &t.Value.NListUint64
+		target, err := &t.nListUint64Target, error(nil)
+		return nil, target, err
 	case "NByteArray":
-		val, err := &NByteArrayTarget{Value: &t.Value.NByteArray}, error(nil)
-		return nil, val, err
+		t.nByteArrayTarget.Value = &t.Value.NByteArray
+		target, err := &t.nByteArrayTarget, error(nil)
+		return nil, target, err
 	case "NArray2Uint64":
-		val, err := &NArray2Uint64Target{Value: &t.Value.NArray2Uint64}, error(nil)
-		return nil, val, err
+		t.nArray2Uint64Target.Value = &t.Value.NArray2Uint64
+		target, err := &t.nArray2Uint64Target, error(nil)
+		return nil, target, err
 	case "NSetUint64":
-		val, err := &NSetUint64Target{Value: &t.Value.NSetUint64}, error(nil)
-		return nil, val, err
+		t.nSetUint64Target.Value = &t.Value.NSetUint64
+		target, err := &t.nSetUint64Target, error(nil)
+		return nil, target, err
 	case "NMapUint64String":
-		val, err := &NMapUint64StringTarget{Value: &t.Value.NMapUint64String}, error(nil)
-		return nil, val, err
+		t.nMapUint64StringTarget.Value = &t.Value.NMapUint64String
+		target, err := &t.nMapUint64StringTarget, error(nil)
+		return nil, target, err
 	case "NStruct":
-		val, err := &NStructTarget{Value: &t.Value.NStruct}, error(nil)
-		return nil, val, err
+		t.nStructTarget.Value = &t.Value.NStruct
+		target, err := &t.nStructTarget, error(nil)
+		return nil, target, err
 	case "NUnion":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.NUnion))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.NUnion))
+		return nil, target, err
 	case "TypeObject":
-		val, err := &vdl.TypeObjectTarget{Value: &t.Value.TypeObject}, error(nil)
-		return nil, val, err
+		t.typeObjectTarget.Value = &t.Value.TypeObject
+		target, err := &t.typeObjectTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_StructManyTypes)
 	}
@@ -6632,8 +6961,10 @@
 	return &AnySliceTarget{Value: m}
 }
 
+// AnySlice
 type AnySliceTarget struct {
 	Value *AnySlice
+
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
@@ -6650,7 +6981,8 @@
 	return t, nil
 }
 func (t *AnySliceTarget) StartElem(index int) (elem vdl.Target, _ error) {
-	return vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+	target, err := vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
+	return target, err
 }
 func (t *AnySliceTarget) FinishElem(elem vdl.Target) error {
 	return nil
@@ -6722,7 +7054,9 @@
 }
 
 type LargeMessageTypeTarget struct {
-	Value *LargeMessageType
+	Value         *LargeMessageType
+	payloadTarget vdl.BytesTarget
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -6736,11 +7070,12 @@
 func (t *LargeMessageTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Payload":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Payload}, error(nil)
-		return nil, val, err
+		t.payloadTarget.Value = &t.Value.Payload
+		target, err := &t.payloadTarget, error(nil)
+		return nil, target, err
 	case "Next":
-		val, err := &unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657d_Target{Value: &t.Value.Next}, error(nil)
-		return nil, val, err
+		target, err := &unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657dTarget{Value: &t.Value.Next}, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_LargeMessageType)
 	}
@@ -6753,13 +7088,15 @@
 	return nil
 }
 
-type unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657d_Target struct {
+// Optional LargeMessageType
+type unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657dTarget struct {
 	Value **LargeMessageType
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &LargeMessageType{}
 	}
@@ -6769,11 +7106,11 @@
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d65737361676554797065207374727563747b5061796c6f6164205b5d627974653b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c617267654d657373616765547970657dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
@@ -6848,6 +7185,7 @@
 
 type LargeAnyMessageTypeTarget struct {
 	Value *LargeAnyMessageType
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -6861,11 +7199,11 @@
 func (t *LargeAnyMessageTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Payload":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Payload))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Payload))
+		return nil, target, err
 	case "Next":
-		val, err := &unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657d_Target{Value: &t.Value.Next}, error(nil)
-		return nil, val, err
+		target, err := &unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657dTarget{Value: &t.Value.Next}, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_testdata_types_LargeAnyMessageType)
 	}
@@ -6878,13 +7216,15 @@
 	return nil
 }
 
-type unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657d_Target struct {
+// Optional LargeAnyMessageType
+type unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657dTarget struct {
 	Value **LargeAnyMessageType
+
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
 
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657d_Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657dTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
 	if *t.Value == nil {
 		*t.Value = &LargeAnyMessageType{}
 	}
@@ -6894,11 +7234,11 @@
 	}
 	return target.StartFields(tt)
 }
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657d_Target) FinishFields(_ vdl.FieldsTarget) error {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657dTarget) FinishFields(_ vdl.FieldsTarget) error {
 
 	return nil
 }
-func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657d_Target) FromNil(tt *vdl.Type) error {
+func (t *unnamed_3f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d65737361676554797065207374727563747b5061796c6f616420616e793b4e657874203f762e696f2f7632332f766f6d2f74657374646174612f74797065732e4c61726765416e794d657373616765547970657dTarget) FromNil(tt *vdl.Type) error {
 	*t.Value = nil
 
 	return nil
diff --git a/vom/vom.vdl.go b/vom/vom.vdl.go
index a18d837..377d353 100644
--- a/vom/vom.vdl.go
+++ b/vom/vom.vdl.go
@@ -367,7 +367,11 @@
 }
 
 type DumpAtomTarget struct {
-	Value *DumpAtom
+	Value       *DumpAtom
+	kindTarget  DumpKindTarget
+	bytesTarget vdl.BytesTarget
+
+	debugTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -381,17 +385,20 @@
 func (t *DumpAtomTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Kind":
-		val, err := &DumpKindTarget{Value: &t.Value.Kind}, error(nil)
-		return nil, val, err
+		t.kindTarget.Value = &t.Value.Kind
+		target, err := &t.kindTarget, error(nil)
+		return nil, target, err
 	case "Bytes":
-		val, err := &vdl.BytesTarget{Value: &t.Value.Bytes}, error(nil)
-		return nil, val, err
+		t.bytesTarget.Value = &t.Value.Bytes
+		target, err := &t.bytesTarget, error(nil)
+		return nil, target, err
 	case "Data":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Data))
-		return nil, val, err
+		target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Data))
+		return nil, target, err
 	case "Debug":
-		val, err := &vdl.StringTarget{Value: &t.Value.Debug}, error(nil)
-		return nil, val, err
+		t.debugTarget.Value = &t.Value.Debug
+		target, err := &t.debugTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_DumpAtom)
 	}
@@ -1134,7 +1141,9 @@
 }
 
 type wireNamedTarget struct {
-	Value *wireNamed
+	Value      *wireNamed
+	nameTarget vdl.StringTarget
+	baseTarget typeIdTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1148,11 +1157,13 @@
 func (t *wireNamedTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Base":
-		val, err := &typeIdTarget{Value: &t.Value.Base}, error(nil)
-		return nil, val, err
+		t.baseTarget.Value = &t.Value.Base
+		target, err := &t.baseTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireNamed)
 	}
@@ -1237,7 +1248,9 @@
 }
 
 type wireEnumTarget struct {
-	Value *wireEnum
+	Value        *wireEnum
+	nameTarget   vdl.StringTarget
+	labelsTarget vdl.StringSliceTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1251,11 +1264,13 @@
 func (t *wireEnumTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Labels":
-		val, err := &vdl.StringSliceTarget{Value: &t.Value.Labels}, error(nil)
-		return nil, val, err
+		t.labelsTarget.Value = &t.Value.Labels
+		target, err := &t.labelsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireEnum)
 	}
@@ -1337,7 +1352,10 @@
 }
 
 type wireArrayTarget struct {
-	Value *wireArray
+	Value      *wireArray
+	nameTarget vdl.StringTarget
+	elemTarget typeIdTarget
+	lenTarget  vdl.Uint64Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1351,14 +1369,17 @@
 func (t *wireArrayTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Elem":
-		val, err := &typeIdTarget{Value: &t.Value.Elem}, error(nil)
-		return nil, val, err
+		t.elemTarget.Value = &t.Value.Elem
+		target, err := &t.elemTarget, error(nil)
+		return nil, target, err
 	case "Len":
-		val, err := &vdl.Uint64Target{Value: &t.Value.Len}, error(nil)
-		return nil, val, err
+		t.lenTarget.Value = &t.Value.Len
+		target, err := &t.lenTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireArray)
 	}
@@ -1427,7 +1448,9 @@
 }
 
 type wireListTarget struct {
-	Value *wireList
+	Value      *wireList
+	nameTarget vdl.StringTarget
+	elemTarget typeIdTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1441,11 +1464,13 @@
 func (t *wireListTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Elem":
-		val, err := &typeIdTarget{Value: &t.Value.Elem}, error(nil)
-		return nil, val, err
+		t.elemTarget.Value = &t.Value.Elem
+		target, err := &t.elemTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireList)
 	}
@@ -1514,7 +1539,9 @@
 }
 
 type wireSetTarget struct {
-	Value *wireSet
+	Value      *wireSet
+	nameTarget vdl.StringTarget
+	keyTarget  typeIdTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1528,11 +1555,13 @@
 func (t *wireSetTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Key":
-		val, err := &typeIdTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireSet)
 	}
@@ -1615,7 +1644,10 @@
 }
 
 type wireMapTarget struct {
-	Value *wireMap
+	Value      *wireMap
+	nameTarget vdl.StringTarget
+	keyTarget  typeIdTarget
+	elemTarget typeIdTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1629,14 +1661,17 @@
 func (t *wireMapTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Key":
-		val, err := &typeIdTarget{Value: &t.Value.Key}, error(nil)
-		return nil, val, err
+		t.keyTarget.Value = &t.Value.Key
+		target, err := &t.keyTarget, error(nil)
+		return nil, target, err
 	case "Elem":
-		val, err := &typeIdTarget{Value: &t.Value.Elem}, error(nil)
-		return nil, val, err
+		t.elemTarget.Value = &t.Value.Elem
+		target, err := &t.elemTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireMap)
 	}
@@ -1705,7 +1740,9 @@
 }
 
 type wireFieldTarget struct {
-	Value *wireField
+	Value      *wireField
+	nameTarget vdl.StringTarget
+	typeTarget typeIdTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1719,11 +1756,13 @@
 func (t *wireFieldTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Type":
-		val, err := &typeIdTarget{Value: &t.Value.Type}, error(nil)
-		return nil, val, err
+		t.typeTarget.Value = &t.Value.Type
+		target, err := &t.typeTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireField)
 	}
@@ -1809,7 +1848,9 @@
 }
 
 type wireStructTarget struct {
-	Value *wireStruct
+	Value        *wireStruct
+	nameTarget   vdl.StringTarget
+	fieldsTarget unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1823,11 +1864,13 @@
 func (t *wireStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Fields":
-		val, err := &unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347d_Target{Value: &t.Value.Fields}, error(nil)
-		return nil, val, err
+		t.fieldsTarget.Value = &t.Value.Fields
+		target, err := &t.fieldsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireStruct)
 	}
@@ -1840,13 +1883,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347d_Target struct {
-	Value *[]wireField
+// []wireField
+type unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347dTarget struct {
+	Value      *[]wireField
+	elemTarget wireFieldTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType11) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType11)
 	}
@@ -1857,13 +1902,15 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &wireFieldTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
@@ -1941,7 +1988,9 @@
 }
 
 type wireUnionTarget struct {
-	Value *wireUnion
+	Value        *wireUnion
+	nameTarget   vdl.StringTarget
+	fieldsTarget unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -1955,11 +2004,13 @@
 func (t *wireUnionTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Fields":
-		val, err := &unnamed_5b5d762e696f2f7632332f766f6d2e776972654669656c64207374727563747b4e616d6520737472696e673b5479706520762e696f2f7632332f766f6d2e7479706549642075696e7436347d_Target{Value: &t.Value.Fields}, error(nil)
-		return nil, val, err
+		t.fieldsTarget.Value = &t.Value.Fields
+		target, err := &t.fieldsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireUnion)
 	}
@@ -2028,7 +2079,9 @@
 }
 
 type wireOptionalTarget struct {
-	Value *wireOptional
+	Value      *wireOptional
+	nameTarget vdl.StringTarget
+	elemTarget typeIdTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -2042,11 +2095,13 @@
 func (t *wireOptionalTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Elem":
-		val, err := &typeIdTarget{Value: &t.Value.Elem}, error(nil)
-		return nil, val, err
+		t.elemTarget.Value = &t.Value.Elem
+		target, err := &t.elemTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vom_wireOptional)
 	}
diff --git a/vtrace/vtrace.vdl.go b/vtrace/vtrace.vdl.go
index ee04687..a817781 100644
--- a/vtrace/vtrace.vdl.go
+++ b/vtrace/vtrace.vdl.go
@@ -87,7 +87,9 @@
 }
 
 type TraceRecordTarget struct {
-	Value *TraceRecord
+	Value       *TraceRecord
+	idTarget    uniqueid.IdTarget
+	spansTarget unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -101,11 +103,13 @@
 func (t *TraceRecordTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Id":
-		val, err := &uniqueid.IdTarget{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "Spans":
-		val, err := &unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7d_Target{Value: &t.Value.Spans}, error(nil)
-		return nil, val, err
+		t.spansTarget.Value = &t.Value.Spans
+		target, err := &t.spansTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vtrace_TraceRecord)
 	}
@@ -118,13 +122,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7d_Target struct {
-	Value *[]SpanRecord
+// []SpanRecord
+type unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7dTarget struct {
+	Value      *[]SpanRecord
+	elemTarget SpanRecordTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType1) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType1)
 	}
@@ -135,19 +141,27 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &SpanRecordTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f7674726163652e5370616e5265636f7264207374727563747b496420762e696f2f7632332f756e6971756569642e4964205b31365d627974653b506172656e7420762e696f2f7632332f756e6971756569642e49643b4e616d6520737472696e673b53746172742074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b456e642074696d652e54696d653b416e6e6f746174696f6e73205b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d653b4d65737361676520737472696e677d7dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
 type SpanRecordTarget struct {
-	Value *SpanRecord
+	Value             *SpanRecord
+	idTarget          uniqueid.IdTarget
+	parentTarget      uniqueid.IdTarget
+	nameTarget        vdl.StringTarget
+	startTarget       time_2.TimeTarget
+	endTarget         time_2.TimeTarget
+	annotationsTarget unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677dTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -161,23 +175,29 @@
 func (t *SpanRecordTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Id":
-		val, err := &uniqueid.IdTarget{Value: &t.Value.Id}, error(nil)
-		return nil, val, err
+		t.idTarget.Value = &t.Value.Id
+		target, err := &t.idTarget, error(nil)
+		return nil, target, err
 	case "Parent":
-		val, err := &uniqueid.IdTarget{Value: &t.Value.Parent}, error(nil)
-		return nil, val, err
+		t.parentTarget.Value = &t.Value.Parent
+		target, err := &t.parentTarget, error(nil)
+		return nil, target, err
 	case "Name":
-		val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
-		return nil, val, err
+		t.nameTarget.Value = &t.Value.Name
+		target, err := &t.nameTarget, error(nil)
+		return nil, target, err
 	case "Start":
-		val, err := &time_2.TimeTarget{Value: &t.Value.Start}, error(nil)
-		return nil, val, err
+		t.startTarget.Value = &t.Value.Start
+		target, err := &t.startTarget, error(nil)
+		return nil, target, err
 	case "End":
-		val, err := &time_2.TimeTarget{Value: &t.Value.End}, error(nil)
-		return nil, val, err
+		t.endTarget.Value = &t.Value.End
+		target, err := &t.endTarget, error(nil)
+		return nil, target, err
 	case "Annotations":
-		val, err := &unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677d_Target{Value: &t.Value.Annotations}, error(nil)
-		return nil, val, err
+		t.annotationsTarget.Value = &t.Value.Annotations
+		target, err := &t.annotationsTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vtrace_SpanRecord)
 	}
@@ -190,13 +210,15 @@
 	return nil
 }
 
-type unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677d_Target struct {
-	Value *[]Annotation
+// []Annotation
+type unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677dTarget struct {
+	Value      *[]Annotation
+	elemTarget AnnotationTarget
 	vdl.TargetBase
 	vdl.ListTargetBase
 }
 
-func (t *unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677d_Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
+func (t *unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
 	if !vdl.Compatible(tt, __VDLType2) {
 		return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType2)
 	}
@@ -207,19 +229,23 @@
 	}
 	return t, nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677d_Target) StartElem(index int) (elem vdl.Target, _ error) {
-	return &AnnotationTarget{Value: &(*t.Value)[index]}, error(nil)
+func (t *unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677dTarget) StartElem(index int) (elem vdl.Target, _ error) {
+	t.elemTarget.Value = &(*t.Value)[index]
+	target, err := &t.elemTarget, error(nil)
+	return target, err
 }
-func (t *unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677d_Target) FinishElem(elem vdl.Target) error {
+func (t *unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677dTarget) FinishElem(elem vdl.Target) error {
 	return nil
 }
-func (t *unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677d_Target) FinishList(elem vdl.ListTarget) error {
+func (t *unnamed_5b5d762e696f2f7632332f7674726163652e416e6e6f746174696f6e207374727563747b5768656e2074696d652e54696d65207374727563747b5365636f6e647320696e7436343b4e616e6f7320696e7433327d3b4d65737361676520737472696e677dTarget) FinishList(elem vdl.ListTarget) error {
 
 	return nil
 }
 
 type AnnotationTarget struct {
-	Value *Annotation
+	Value         *Annotation
+	whenTarget    time_2.TimeTarget
+	messageTarget vdl.StringTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -233,11 +259,13 @@
 func (t *AnnotationTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "When":
-		val, err := &time_2.TimeTarget{Value: &t.Value.When}, error(nil)
-		return nil, val, err
+		t.whenTarget.Value = &t.Value.When
+		target, err := &t.whenTarget, error(nil)
+		return nil, target, err
 	case "Message":
-		val, err := &vdl.StringTarget{Value: &t.Value.Message}, error(nil)
-		return nil, val, err
+		t.messageTarget.Value = &t.Value.Message
+		target, err := &t.messageTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vtrace_Annotation)
 	}
@@ -593,7 +621,11 @@
 }
 
 type RequestTarget struct {
-	Value *Request
+	Value          *Request
+	spanIdTarget   uniqueid.IdTarget
+	traceIdTarget  uniqueid.IdTarget
+	flagsTarget    TraceFlagsTarget
+	logLevelTarget vdl.Int32Target
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -607,17 +639,21 @@
 func (t *RequestTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "SpanId":
-		val, err := &uniqueid.IdTarget{Value: &t.Value.SpanId}, error(nil)
-		return nil, val, err
+		t.spanIdTarget.Value = &t.Value.SpanId
+		target, err := &t.spanIdTarget, error(nil)
+		return nil, target, err
 	case "TraceId":
-		val, err := &uniqueid.IdTarget{Value: &t.Value.TraceId}, error(nil)
-		return nil, val, err
+		t.traceIdTarget.Value = &t.Value.TraceId
+		target, err := &t.traceIdTarget, error(nil)
+		return nil, target, err
 	case "Flags":
-		val, err := &TraceFlagsTarget{Value: &t.Value.Flags}, error(nil)
-		return nil, val, err
+		t.flagsTarget.Value = &t.Value.Flags
+		target, err := &t.flagsTarget, error(nil)
+		return nil, target, err
 	case "LogLevel":
-		val, err := &vdl.Int32Target{Value: &t.Value.LogLevel}, error(nil)
-		return nil, val, err
+		t.logLevelTarget.Value = &t.Value.LogLevel
+		target, err := &t.logLevelTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vtrace_Request)
 	}
@@ -688,7 +724,9 @@
 }
 
 type ResponseTarget struct {
-	Value *Response
+	Value       *Response
+	flagsTarget TraceFlagsTarget
+	traceTarget TraceRecordTarget
 	vdl.TargetBase
 	vdl.FieldsTargetBase
 }
@@ -702,11 +740,13 @@
 func (t *ResponseTarget) StartField(name string) (key, field vdl.Target, _ error) {
 	switch name {
 	case "Flags":
-		val, err := &TraceFlagsTarget{Value: &t.Value.Flags}, error(nil)
-		return nil, val, err
+		t.flagsTarget.Value = &t.Value.Flags
+		target, err := &t.flagsTarget, error(nil)
+		return nil, target, err
 	case "Trace":
-		val, err := &TraceRecordTarget{Value: &t.Value.Trace}, error(nil)
-		return nil, val, err
+		t.traceTarget.Value = &t.Value.Trace
+		target, err := &t.traceTarget, error(nil)
+		return nil, target, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_v_io_v23_vtrace_Response)
 	}