[fidl][go] Offset based struct encoding

Bug: 35342

Test: fx run-test go_fidl_tests
Change-Id: I9513d94ae06160f7d4664f2955f9e2b249f5050f
diff --git a/src/syscall/zx/fidl/bindingstest/impl.go b/src/syscall/zx/fidl/bindingstest/impl.go
index 814f580..4f5ecd8 100644
--- a/src/syscall/zx/fidl/bindingstest/impl.go
+++ b/src/syscall/zx/fidl/bindingstest/impl.go
@@ -526,6 +526,32 @@
 	return _mTestAddEthernetDeviceRequest
 }
 
+type TestPackageResolverResolveRequest struct {
+	_            struct{}                       `fidl:"s,40,8" fidl2:"s,40,8"`
+	PackageUrl   string                         `fidl:"0,"`
+	Selectors    []string                       `fidl:"16,,"`
+	UpdatePolicy UpdatePolicy                   `fidl:"32"`
+	Dir          EthernetDeviceInterfaceRequest `fidl:"36,0" fidl2:"0"`
+}
+
+var _mTestPackageResolverResolveRequest = _bindings.CreateLazyMarshaler(TestPackageResolverResolveRequest{})
+
+func (msg *TestPackageResolverResolveRequest) Marshaler() _bindings.Marshaler {
+	return _mTestPackageResolverResolveRequest
+}
+
+type UpdatePolicy struct {
+	_                struct{} `fidl:"s,2,1" fidl2:"s,2,1"`
+	FetchIfAbsent    bool     `fidl:"0"`
+	AllowOldVersions bool     `fidl:"1"`
+}
+
+var _mUpdatePolicy = _bindings.CreateLazyMarshaler(UpdatePolicy{})
+
+func (msg *UpdatePolicy) Marshaler() _bindings.Marshaler {
+	return _mUpdatePolicy
+}
+
 type I_union1Tag uint32
 
 const (
@@ -538,10 +564,10 @@
 
 type Union1 struct {
 	I_union1Tag `fidl:"u,16,8" fidl2:"u,16,8"`
-	A           [3]int8     `fidl:"1140208200" fidl2:"1140208200"`
-	B           TestSimple  `fidl:"1101191659" fidl2:"1101191659"`
-	C           *TestSimple `fidl:"310804024" fidl2:"310804024"`
-	D           float32     `fidl:"1193101976" fidl2:"1193101976"`
+	A           [3]int8     `fidl:"1140208200"`
+	B           TestSimple  `fidl:"1101191659"`
+	C           *TestSimple `fidl:"310804024"`
+	D           float32     `fidl:"1193101976"`
 }
 
 func (u *Union1) Which() I_union1Tag {
@@ -603,9 +629,9 @@
 
 type XUnion1AsUnion struct {
 	I_xUnion1AsUnionTag `fidl:"u,16,8" fidl2:"u,16,8"`
-	A                   [3]int8    `fidl:"1815116267" fidl2:"1815116267"`
-	B                   TestSimple `fidl:"219568201" fidl2:"219568201"`
-	D                   float32    `fidl:"1047172132" fidl2:"1047172132"`
+	A                   [3]int8    `fidl:"1815116267"`
+	B                   TestSimple `fidl:"219568201"`
+	D                   float32    `fidl:"1047172132"`
 }
 
 func (u *XUnion1AsUnion) Which() I_xUnion1AsUnionTag {
@@ -658,11 +684,11 @@
 
 type SimpleUnion struct {
 	I_simpleUnionTag `fidl:"u,24,8" fidl2:"u,24,8"`
-	I32              int32        `fidl:"2133387115" fidl2:"2133387115"`
-	I64              int64        `fidl:"809723265" fidl2:"809723265"`
-	S                Int64Struct  `fidl:"1133668882" fidl2:"1133668882"`
-	Os               *Int64Struct `fidl:"1823223580" fidl2:"1823223580"`
-	Str              string       `fidl:"1886911784," fidl2:"1886911784,"`
+	I32              int32        `fidl:"2133387115"`
+	I64              int64        `fidl:"809723265"`
+	S                Int64Struct  `fidl:"1133668882"`
+	Os               *Int64Struct `fidl:"1823223580"`
+	Str              string       `fidl:"1886911784,"`
 }
 
 func (u *SimpleUnion) Which() I_simpleUnionTag {
@@ -734,8 +760,8 @@
 
 type IpAddressConfig struct {
 	I_ipAddressConfigTag `fidl:"u,28,4" fidl2:"u,28,4"`
-	PaddingSize24Align4  [6]uint32 `fidl:"1850696643" fidl2:"1850696643"`
-	Dhcp                 bool      `fidl:"500027731" fidl2:"500027731"`
+	PaddingSize24Align4  [6]uint32 `fidl:"1850696643"`
+	Dhcp                 bool      `fidl:"500027731"`
 }
 
 func (u *IpAddressConfig) Which() I_ipAddressConfigTag {
@@ -1069,7 +1095,7 @@
 
 type test1EchoRequest struct {
 	_  struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	In *string
+	In *string  `fidl:"0,"`
 }
 
 var _mtest1EchoRequest = _bindings.CreateLazyMarshaler(test1EchoRequest{})
@@ -1080,7 +1106,7 @@
 
 type test1EchoResponse struct {
 	_   struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Out *string
+	Out *string  `fidl:"0,"`
 }
 
 var _mtest1EchoResponse = _bindings.CreateLazyMarshaler(test1EchoResponse{})
@@ -1091,7 +1117,7 @@
 
 type test1SurpriseResponse struct {
 	_   struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Foo string
+	Foo string   `fidl:"0,"`
 }
 
 var _mtest1SurpriseResponse = _bindings.CreateLazyMarshaler(test1SurpriseResponse{})
diff --git a/src/syscall/zx/fidl/bindingstest/test.test.fidl b/src/syscall/zx/fidl/bindingstest/test.test.fidl
index 1ade4a7..a23cc43 100644
--- a/src/syscall/zx/fidl/bindingstest/test.test.fidl
+++ b/src/syscall/zx/fidl/bindingstest/test.test.fidl
@@ -297,3 +297,15 @@
     InterfaceConfig config;
     EthernetDevice device;
 };
+
+struct TestPackageResolverResolveRequest {
+    string package_url;
+    vector<string> selectors;
+    UpdatePolicy update_policy;
+    request<EthernetDevice> dir;
+};
+
+struct UpdatePolicy {
+    bool fetch_if_absent;
+    bool allow_old_versions;
+};
diff --git a/src/syscall/zx/fidl/conformance/impl.go b/src/syscall/zx/fidl/conformance/impl.go
index 3b9126d..70561a3 100644
--- a/src/syscall/zx/fidl/conformance/impl.go
+++ b/src/syscall/zx/fidl/conformance/impl.go
@@ -475,6 +475,17 @@
 	return _mStructOfTableWithStringAndVector
 }
 
+type UnionWithBoundStringStruct struct {
+	_ struct{}             `fidl:"s,24,8" fidl2:"s,24,8"`
+	V UnionWithBoundString `fidl:"0"`
+}
+
+var _mUnionWithBoundStringStruct = _bindings.CreateLazyMarshaler(UnionWithBoundStringStruct{})
+
+func (msg *UnionWithBoundStringStruct) Marshaler() _bindings.Marshaler {
+	return _mUnionWithBoundStringStruct
+}
+
 type Int64Struct struct {
 	_ struct{} `fidl:"s,8,8" fidl2:"s,8,8"`
 	X int64    `fidl:"0"`
@@ -544,8 +555,8 @@
 
 type IpAddressConfig struct {
 	I_ipAddressConfigTag `fidl:"u,28,4" fidl2:"u,28,4"`
-	PaddingSize24Align4  [6]uint32 `fidl:"1136452149" fidl2:"1136452149"`
-	Dhcp                 bool      `fidl:"1619238975" fidl2:"1619238975"`
+	PaddingSize24Align4  [6]uint32 `fidl:"1136452149"`
+	Dhcp                 bool      `fidl:"1619238975"`
 }
 
 func (u *IpAddressConfig) Which() I_ipAddressConfigTag {
@@ -584,8 +595,8 @@
 
 type UnionWithEmptyStruct struct {
 	I_unionWithEmptyStructTag `fidl:"u,16,8" fidl2:"u,16,8"`
-	S                         EmptyStruct  `fidl:"2012545430" fidl2:"2012545430"`
-	S2                        *EmptyStruct `fidl:"1404939714" fidl2:"1404939714"`
+	S                         EmptyStruct  `fidl:"2012545430"`
+	S2                        *EmptyStruct `fidl:"1404939714"`
 }
 
 func (u *UnionWithEmptyStruct) Which() I_unionWithEmptyStructTag {
@@ -614,6 +625,33 @@
 	return _u
 }
 
+type I_unionWithBoundStringTag uint32
+
+const (
+	_ I_unionWithBoundStringTag = iota
+	UnionWithBoundStringBoundFiveStr
+)
+
+type UnionWithBoundString struct {
+	I_unionWithBoundStringTag `fidl:"u,24,8" fidl2:"u,24,8"`
+	BoundFiveStr              string `fidl:"921366385,5"`
+}
+
+func (u *UnionWithBoundString) Which() I_unionWithBoundStringTag {
+	return u.I_unionWithBoundStringTag
+}
+
+func (u *UnionWithBoundString) SetBoundFiveStr(boundFiveStr string) {
+	u.I_unionWithBoundStringTag = UnionWithBoundStringBoundFiveStr
+	u.BoundFiveStr = boundFiveStr
+}
+
+func UnionWithBoundStringWithBoundFiveStr(boundFiveStr string) UnionWithBoundString {
+	var _u UnionWithBoundString
+	_u.SetBoundFiveStr(boundFiveStr)
+	return _u
+}
+
 type I_simpleUnionTag uint32
 
 const (
@@ -627,11 +665,11 @@
 
 type SimpleUnion struct {
 	I_simpleUnionTag `fidl:"u,24,8" fidl2:"u,24,8"`
-	I32              int32        `fidl:"1667828146" fidl2:"1667828146"`
-	I64              int64        `fidl:"1110539033" fidl2:"1110539033"`
-	S                Int64Struct  `fidl:"684890561" fidl2:"684890561"`
-	Os               *Int64Struct `fidl:"1501363482" fidl2:"1501363482"`
-	Str              string       `fidl:"498325473," fidl2:"498325473,"`
+	I32              int32        `fidl:"1667828146"`
+	I64              int64        `fidl:"1110539033"`
+	S                Int64Struct  `fidl:"684890561"`
+	Os               *Int64Struct `fidl:"1501363482"`
+	Str              string       `fidl:"498325473,"`
 }
 
 func (u *SimpleUnion) Which() I_simpleUnionTag {
diff --git a/src/syscall/zx/fidl/encoding_new.go b/src/syscall/zx/fidl/encoding_new.go
index 77b57d7..69e73f3 100644
--- a/src/syscall/zx/fidl/encoding_new.go
+++ b/src/syscall/zx/fidl/encoding_new.go
@@ -141,7 +141,7 @@
 	return in.nextObject, len(handles) - len(in.handles), nil
 }
 
-const tagKey = "fidl2"
+const tagKey = "fidl"
 
 type tagKind int
 
@@ -181,6 +181,7 @@
 		alignment = marshalerBounds[1]
 		fields    []mField
 		ordinals  []int
+		offsets   []int
 	)
 	// field 1 and up are the actual data fields
 	// - structs, unions, and xunions have fields one after the other;
@@ -189,6 +190,10 @@
 		field := typ.Field(index)
 		_, fieldBounds := readTag(field)
 		switch kind {
+		case structTag:
+			offset, actualBounds := fieldBounds.pop()
+			offsets = append(offsets, offset)
+			fieldBounds = actualBounds
 		case unionTag, xunionTag, strictXunionTag, tableTag:
 			ordinal, actualBounds := fieldBounds.pop()
 			ordinals = append(ordinals, ordinal)
@@ -214,8 +219,15 @@
 			return mEmptyStruct{}, nil
 		}
 
+		var structFields []mFieldWithOffset
+		for i := 0; i < len(fields); i++ {
+			structFields = append(structFields, mFieldWithOffset{
+				mField: fields[i],
+				offset: offsets[i],
+			})
+		}
 		return mStruct{
-			fields:    fields,
+			fields:    structFields,
 			size:      size,
 			alignment: alignment,
 		}, nil
@@ -241,12 +253,10 @@
 		}, nil
 	case tableTag:
 		return mTable{
-			mStruct: mStruct{
-				fields:    fields,
-				size:      size,
-				alignment: alignment,
-			},
-			ordinals: ordinals,
+			fields:    fields,
+			size:      size,
+			alignment: alignment,
+			ordinals:  ordinals,
 		}, nil
 	default:
 		return nil, errors.New("missing kind marker on " + nicefmt(typ))
@@ -451,8 +461,13 @@
 	index int
 }
 
+type mFieldWithOffset struct {
+	mField
+	offset int
+}
+
 type mStruct struct {
-	fields          []mField
+	fields          []mFieldWithOffset
 	size, alignment int
 }
 
@@ -461,8 +476,9 @@
 }
 
 func (m mStruct) marshal(ctx MarshalerContext, v reflect.Value, out *encoder) error {
-	out.head = align(out.head, m.alignment)
+	structStart := align(out.head, m.alignment)
 	for _, field := range m.fields {
+		out.head = structStart + field.offset
 		if err := field.Marshaler.marshal(ctx, v.Field(field.index), out); err != nil {
 			return err
 		}
@@ -472,8 +488,9 @@
 }
 
 func (m mStruct) unmarshal(ctx MarshalerContext, in *decoder, v reflect.Value) error {
-	in.head = align(in.head, m.alignment)
+	structStart := align(in.head, m.alignment)
 	for _, field := range m.fields {
+		in.head = structStart + field.offset
 		if err := field.Marshaler.unmarshal(ctx, in, v.Field(field.index)); err != nil {
 			return err
 		}
@@ -737,8 +754,13 @@
 }
 
 type mTable struct {
-	mStruct
-	ordinals []int
+	fields          []mField
+	size, alignment int
+	ordinals        []int
+}
+
+func (m mTable) getSize() int {
+	return m.size
 }
 
 const envelopeSize = 16
diff --git a/src/syscall/zx/fidl/fidl_test/encoding_new_test.go b/src/syscall/zx/fidl/fidl_test/encoding_new_test.go
index e184e6b..985ff29 100644
--- a/src/syscall/zx/fidl/fidl_test/encoding_new_test.go
+++ b/src/syscall/zx/fidl/fidl_test/encoding_new_test.go
@@ -22,8 +22,8 @@
 
 func TestMarshalMessageHeader(t *testing.T) {
 	data := []byte{
-		0x12, 0x34, 0x56, 0x78,                         // txid
-		0xAB, 0xCD, 0xEF,                               // flags
+		0x12, 0x34, 0x56, 0x78, // txid
+		0xAB, 0xCD, 0xEF, // flags
 		0x01,                                           // magic number
 		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // method ordinal
 	}
@@ -707,6 +707,35 @@
 			zx.Handle(0xdeadbeef),
 		},
 	}.check(t)
+
+	successCase{
+		name: "package-resolver-resolve-request",
+		input: &TestPackageResolverResolveRequest{
+			PackageUrl: "a",
+			Selectors:  []string{"a"},
+			UpdatePolicy: UpdatePolicy{
+				FetchIfAbsent:    true,
+				AllowOldVersions: true,
+			},
+			Dir: EthernetDeviceInterfaceRequest{zx.Channel(0xdeadbeef)},
+		},
+		bytes: []byte{
+			0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // package url size
+			0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // package url ptr
+			0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // selectors size
+			0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // selectors ptr
+			0x01, 0x01, 0x00, 0x00, // policy struct + padding
+			0xFF, 0xFF, 0xFF, 0xFF, // request handle
+			// out of line data
+			0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+			0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		},
+		handles: []zx.Handle{
+			zx.Handle(0xdeadbeef),
+		},
+	}.check(t)
 }
 
 func TestTableCompatibilityWithXY(t *testing.T) {
@@ -759,8 +788,8 @@
 
 func TestFailureNullableTable(t *testing.T) {
 	type TestNullableTable struct {
-		_ struct{} `fidl2:"s,123,456"`
-		A *SimpleTable
+		_ struct{}     `fidl:"s,123,456" fidl2:"s,123,456"`
+		A *SimpleTable `fidl:"0"`
 	}
 	_, err := CreateMarshaler(TestNullableTable{})
 	if err == nil {
diff --git a/src/syscall/zx/fidl/interface_test.go b/src/syscall/zx/fidl/interface_test.go
index 490cc04..4ae95b0 100644
--- a/src/syscall/zx/fidl/interface_test.go
+++ b/src/syscall/zx/fidl/interface_test.go
@@ -22,7 +22,7 @@
 var _ fidl.Message = (*message)(nil)
 
 type message struct {
-	_ struct{} `fidl2:"s,1,0"`
+	_ struct{} `fidl:"s,1,0" fidl2:"s,1,0"`
 }
 
 var _mMessage = fidl.MustCreateMarshaler(message{})
diff --git a/src/syscall/zx/fidl/message.go b/src/syscall/zx/fidl/message.go
index ecc85c9..490616d 100644
--- a/src/syscall/zx/fidl/message.go
+++ b/src/syscall/zx/fidl/message.go
@@ -32,15 +32,17 @@
 
 // MessageHeader represents a transactional message header.
 type MessageHeader struct {
-	_       struct{} `fidl2:"s,16,8"`
-	Txid    uint32
-	Flags   [3]uint8
-	Magic   uint8
-	Ordinal uint64
+	_       struct{} `fidl:"s,16,8" fidl2:"s,16,8"`
+	Txid    uint32   `fidl:"0"`
+	Flags   [3]uint8 `fidl:"4"`
+	Magic   uint8    `fidl:"7"`
+	Ordinal uint64   `fidl:"8"`
 }
 
 var mMessageHeader = MustCreateMarshaler(MessageHeader{})
 
+var MessageHeaderSize = mMessageHeader.getSize()
+
 func (msg *MessageHeader) Marshaler() Marshaler {
 	return mMessageHeader
 }
diff --git a/src/syscall/zx/io/impl.go b/src/syscall/zx/io/impl.go
index 9d94b82..c3c9796 100644
--- a/src/syscall/zx/io/impl.go
+++ b/src/syscall/zx/io/impl.go
@@ -159,17 +159,17 @@
 	WatchEventExisting uint8 = 3
 	// Identifies that no more `WATCH_EVENT_EXISTING` events will be sent.
 	WatchEventIdle uint8 = 4
-	// Used by Directory::Watch. Requests transmission of `WATCH_EVENT_DELETED`.
+	// Used by `Directory.Watch`. Requests transmission of `WATCH_EVENT_DELETED`.
 	WatchMaskDeleted uint32 = 1
-	// Used by Directory::Watch. Requests transmission of `WATCH_EVENT_ADDED`.
+	// Used by `Directory.Watch`. Requests transmission of `WATCH_EVENT_ADDED`.
 	WatchMaskAdded uint32 = 2
-	// Used by Directory::Watch. Requests transmission of `WATCH_EVENT_REMOVED`.
+	// Used by `Directory.Watch`. Requests transmission of `WATCH_EVENT_REMOVED`.
 	WatchMaskRemoved uint32 = 4
-	// Used by Directory::Watch. Requests transmission of `WATCH_EVENT_EXISTING`.
+	// Used by `Directory.Watch`. Requests transmission of `WATCH_EVENT_EXISTING`.
 	WatchMaskExisting uint32 = 8
-	// Used by Directory::Watch. Requests transmission of `WATCH_EVENT_IDLE`.
+	// Used by `Directory.Watch`. Requests transmission of `WATCH_EVENT_IDLE`.
 	WatchMaskIdle uint32 = 16
-	// Used by Directory::Watch. Requests transmission of all watcher events.
+	// Used by `Directory.Watch`. Requests transmission of all watcher events.
 	WatchMaskAll           uint32 = 31
 	MountCreateFlagReplace uint32 = 1
 	MaxFsNameBuffer        uint64 = 32
@@ -396,17 +396,17 @@
 // Describes how the connection to an should be handled, as well as
 // how to interpret the optional handle.
 //
-// Refer to `Node::Describe()` and `Node::OnOpen()` for usage.
+// Refer to `Node.Describe()` and `Node.OnOpen()` for usage.
 type NodeInfo struct {
 	I_nodeInfoTag `fidl:"u,32,8" fidl2:"u,32,8"`
-	Service       Service         `fidl:"1116800047" fidl2:"1116800047"`
-	File          FileObject      `fidl:"525060263" fidl2:"525060263"`
-	Directory     DirectoryObject `fidl:"1775777620" fidl2:"1775777620"`
-	Pipe          Pipe            `fidl:"1930052674" fidl2:"1930052674"`
-	Vmofile       Vmofile         `fidl:"1455689042" fidl2:"1455689042"`
-	Device        Device          `fidl:"75663405" fidl2:"75663405"`
-	Tty           Tty             `fidl:"1991666602" fidl2:"1991666602"`
-	Socket        Socket          `fidl:"1568464479" fidl2:"1568464479"`
+	Service       Service         `fidl:"1116800047"`
+	File          FileObject      `fidl:"525060263"`
+	Directory     DirectoryObject `fidl:"1775777620"`
+	Pipe          Pipe            `fidl:"1930052674"`
+	Vmofile       Vmofile         `fidl:"1455689042"`
+	Device        Device          `fidl:"75663405"`
+	Tty           Tty             `fidl:"1991666602"`
+	Socket        Socket          `fidl:"1568464479"`
 }
 
 func (u *NodeInfo) Which() I_nodeInfoTag {
@@ -521,9 +521,9 @@
 )
 
 type nodeCloneRequest struct {
-	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Flags  uint32
-	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
+	_      struct{}             `fidl:"s,8,0" fidl2:"s,8,0"`
+	Flags  uint32               `fidl:"0"`
+	Object NodeInterfaceRequest `fidl:"4,0" fidl2:"0"`
 }
 
 var _mnodeCloneRequest = _bindings.CreateLazyMarshaler(nodeCloneRequest{})
@@ -534,7 +534,7 @@
 
 type nodeCloseResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mnodeCloseResponse = _bindings.CreateLazyMarshaler(nodeCloseResponse{})
@@ -545,7 +545,7 @@
 
 type nodeDescribeResponse struct {
 	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
-	Info NodeInfo
+	Info NodeInfo `fidl:"0"`
 }
 
 var _mnodeDescribeResponse = _bindings.CreateLazyMarshaler(nodeDescribeResponse{})
@@ -555,9 +555,9 @@
 }
 
 type nodeOnOpenResponse struct {
-	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S    int32
-	Info *NodeInfo
+	_    struct{}  `fidl:"s,16,0" fidl2:"s,16,0"`
+	S    int32     `fidl:"0"`
+	Info *NodeInfo `fidl:"8"`
 }
 
 var _mnodeOnOpenResponse = _bindings.CreateLazyMarshaler(nodeOnOpenResponse{})
@@ -568,7 +568,7 @@
 
 type nodeSyncResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mnodeSyncResponse = _bindings.CreateLazyMarshaler(nodeSyncResponse{})
@@ -578,9 +578,9 @@
 }
 
 type nodeGetAttrResponse struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	S          int32
-	Attributes NodeAttributes
+	_          struct{}       `fidl:"s,64,0" fidl2:"s,64,0"`
+	S          int32          `fidl:"0"`
+	Attributes NodeAttributes `fidl:"8"`
 }
 
 var _mnodeGetAttrResponse = _bindings.CreateLazyMarshaler(nodeGetAttrResponse{})
@@ -590,9 +590,9 @@
 }
 
 type nodeSetAttrRequest struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	Flags      uint32
-	Attributes NodeAttributes
+	_          struct{}       `fidl:"s,64,0" fidl2:"s,64,0"`
+	Flags      uint32         `fidl:"0"`
+	Attributes NodeAttributes `fidl:"8"`
 }
 
 var _mnodeSetAttrRequest = _bindings.CreateLazyMarshaler(nodeSetAttrRequest{})
@@ -603,7 +603,7 @@
 
 type nodeSetAttrResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mnodeSetAttrResponse = _bindings.CreateLazyMarshaler(nodeSetAttrResponse{})
@@ -613,11 +613,11 @@
 }
 
 type nodeIoctlRequest struct {
-	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
-	Opcode  uint32
-	MaxOut  uint64
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	In      []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,48,0" fidl2:"s,48,0"`
+	Opcode  uint32       `fidl:"0"`
+	MaxOut  uint64       `fidl:"8"`
+	Handles []_zx.Handle `fidl:"16,2,0" fidl2:"2,0"`
+	In      []uint8      `fidl:"32,8192" fidl2:"8192"`
 }
 
 var _mnodeIoctlRequest = _bindings.CreateLazyMarshaler(nodeIoctlRequest{})
@@ -627,10 +627,10 @@
 }
 
 type nodeIoctlResponse struct {
-	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
-	S       int32
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	Out     []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,40,0" fidl2:"s,40,0"`
+	S       int32        `fidl:"0"`
+	Handles []_zx.Handle `fidl:"8,2,0" fidl2:"2,0"`
+	Out     []uint8      `fidl:"24,8192" fidl2:"8192"`
 }
 
 var _mnodeIoctlResponse = _bindings.CreateLazyMarshaler(nodeIoctlResponse{})
@@ -644,6 +644,7 @@
 // Create another connection to the same remote object.
 //
 // `flags` may be any of:
+//
 // - `OPEN_RIGHT_*`
 // - `OPEN_FLAG_APPEND`
 // - `OPEN_FLAG_NO_REMOTE`
@@ -656,7 +657,8 @@
 // cloned object.
 // The cloned object must have rights less than or equal to the original object.
 // Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+// `CLONE_FLAG_SAME_RIGHTS`.
 func (p *NodeInterface) Clone(flags uint32, object NodeInterfaceRequest) error {
 	req_ := &nodeCloneRequest{
 		Flags:  flags,
@@ -750,6 +752,7 @@
 	// Create another connection to the same remote object.
 	//
 	// `flags` may be any of:
+	//
 	// - `OPEN_RIGHT_*`
 	// - `OPEN_FLAG_APPEND`
 	// - `OPEN_FLAG_NO_REMOTE`
@@ -762,7 +765,8 @@
 	// cloned object.
 	// The cloned object must have rights less than or equal to the original object.
 	// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+	// `CLONE_FLAG_SAME_RIGHTS`.
 	Clone(flags uint32, object NodeInterfaceRequest) error
 	// Terminates connection with object.
 	//
@@ -937,9 +941,9 @@
 )
 
 type fileCloneRequest struct {
-	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Flags  uint32
-	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
+	_      struct{}             `fidl:"s,8,0" fidl2:"s,8,0"`
+	Flags  uint32               `fidl:"0"`
+	Object NodeInterfaceRequest `fidl:"4,0" fidl2:"0"`
 }
 
 var _mfileCloneRequest = _bindings.CreateLazyMarshaler(fileCloneRequest{})
@@ -950,7 +954,7 @@
 
 type fileCloseResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mfileCloseResponse = _bindings.CreateLazyMarshaler(fileCloseResponse{})
@@ -961,7 +965,7 @@
 
 type fileDescribeResponse struct {
 	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
-	Info NodeInfo
+	Info NodeInfo `fidl:"0"`
 }
 
 var _mfileDescribeResponse = _bindings.CreateLazyMarshaler(fileDescribeResponse{})
@@ -971,9 +975,9 @@
 }
 
 type fileOnOpenResponse struct {
-	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S    int32
-	Info *NodeInfo
+	_    struct{}  `fidl:"s,16,0" fidl2:"s,16,0"`
+	S    int32     `fidl:"0"`
+	Info *NodeInfo `fidl:"8"`
 }
 
 var _mfileOnOpenResponse = _bindings.CreateLazyMarshaler(fileOnOpenResponse{})
@@ -984,7 +988,7 @@
 
 type fileSyncResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mfileSyncResponse = _bindings.CreateLazyMarshaler(fileSyncResponse{})
@@ -994,9 +998,9 @@
 }
 
 type fileGetAttrResponse struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	S          int32
-	Attributes NodeAttributes
+	_          struct{}       `fidl:"s,64,0" fidl2:"s,64,0"`
+	S          int32          `fidl:"0"`
+	Attributes NodeAttributes `fidl:"8"`
 }
 
 var _mfileGetAttrResponse = _bindings.CreateLazyMarshaler(fileGetAttrResponse{})
@@ -1006,9 +1010,9 @@
 }
 
 type fileSetAttrRequest struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	Flags      uint32
-	Attributes NodeAttributes
+	_          struct{}       `fidl:"s,64,0" fidl2:"s,64,0"`
+	Flags      uint32         `fidl:"0"`
+	Attributes NodeAttributes `fidl:"8"`
 }
 
 var _mfileSetAttrRequest = _bindings.CreateLazyMarshaler(fileSetAttrRequest{})
@@ -1019,7 +1023,7 @@
 
 type fileSetAttrResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mfileSetAttrResponse = _bindings.CreateLazyMarshaler(fileSetAttrResponse{})
@@ -1029,11 +1033,11 @@
 }
 
 type fileIoctlRequest struct {
-	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
-	Opcode  uint32
-	MaxOut  uint64
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	In      []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,48,0" fidl2:"s,48,0"`
+	Opcode  uint32       `fidl:"0"`
+	MaxOut  uint64       `fidl:"8"`
+	Handles []_zx.Handle `fidl:"16,2,0" fidl2:"2,0"`
+	In      []uint8      `fidl:"32,8192" fidl2:"8192"`
 }
 
 var _mfileIoctlRequest = _bindings.CreateLazyMarshaler(fileIoctlRequest{})
@@ -1043,10 +1047,10 @@
 }
 
 type fileIoctlResponse struct {
-	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
-	S       int32
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	Out     []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,40,0" fidl2:"s,40,0"`
+	S       int32        `fidl:"0"`
+	Handles []_zx.Handle `fidl:"8,2,0" fidl2:"2,0"`
+	Out     []uint8      `fidl:"24,8192" fidl2:"8192"`
 }
 
 var _mfileIoctlResponse = _bindings.CreateLazyMarshaler(fileIoctlResponse{})
@@ -1057,7 +1061,7 @@
 
 type fileReadRequest struct {
 	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Count uint64
+	Count uint64   `fidl:"0"`
 }
 
 var _mfileReadRequest = _bindings.CreateLazyMarshaler(fileReadRequest{})
@@ -1068,8 +1072,8 @@
 
 type fileReadResponse struct {
 	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	S    int32
-	Data []uint8 `fidl:"8192" fidl2:"8192"`
+	S    int32    `fidl:"0"`
+	Data []uint8  `fidl:"8,8192" fidl2:"8192"`
 }
 
 var _mfileReadResponse = _bindings.CreateLazyMarshaler(fileReadResponse{})
@@ -1080,8 +1084,8 @@
 
 type fileReadAtRequest struct {
 	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Count  uint64
-	Offset uint64
+	Count  uint64   `fidl:"0"`
+	Offset uint64   `fidl:"8"`
 }
 
 var _mfileReadAtRequest = _bindings.CreateLazyMarshaler(fileReadAtRequest{})
@@ -1092,8 +1096,8 @@
 
 type fileReadAtResponse struct {
 	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	S    int32
-	Data []uint8 `fidl:"8192" fidl2:"8192"`
+	S    int32    `fidl:"0"`
+	Data []uint8  `fidl:"8,8192" fidl2:"8192"`
 }
 
 var _mfileReadAtResponse = _bindings.CreateLazyMarshaler(fileReadAtResponse{})
@@ -1104,7 +1108,7 @@
 
 type fileWriteRequest struct {
 	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Data []uint8  `fidl:"8192" fidl2:"8192"`
+	Data []uint8  `fidl:"0,8192" fidl2:"8192"`
 }
 
 var _mfileWriteRequest = _bindings.CreateLazyMarshaler(fileWriteRequest{})
@@ -1115,8 +1119,8 @@
 
 type fileWriteResponse struct {
 	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S      int32
-	Actual uint64
+	S      int32    `fidl:"0"`
+	Actual uint64   `fidl:"8"`
 }
 
 var _mfileWriteResponse = _bindings.CreateLazyMarshaler(fileWriteResponse{})
@@ -1127,8 +1131,8 @@
 
 type fileWriteAtRequest struct {
 	_      struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	Data   []uint8  `fidl:"8192" fidl2:"8192"`
-	Offset uint64
+	Data   []uint8  `fidl:"0,8192" fidl2:"8192"`
+	Offset uint64   `fidl:"16"`
 }
 
 var _mfileWriteAtRequest = _bindings.CreateLazyMarshaler(fileWriteAtRequest{})
@@ -1139,8 +1143,8 @@
 
 type fileWriteAtResponse struct {
 	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S      int32
-	Actual uint64
+	S      int32    `fidl:"0"`
+	Actual uint64   `fidl:"8"`
 }
 
 var _mfileWriteAtResponse = _bindings.CreateLazyMarshaler(fileWriteAtResponse{})
@@ -1150,9 +1154,9 @@
 }
 
 type fileSeekRequest struct {
-	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Offset int64
-	Start  SeekOrigin
+	_      struct{}   `fidl:"s,16,0" fidl2:"s,16,0"`
+	Offset int64      `fidl:"0"`
+	Start  SeekOrigin `fidl:"8"`
 }
 
 var _mfileSeekRequest = _bindings.CreateLazyMarshaler(fileSeekRequest{})
@@ -1163,8 +1167,8 @@
 
 type fileSeekResponse struct {
 	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S      int32
-	Offset uint64
+	S      int32    `fidl:"0"`
+	Offset uint64   `fidl:"8"`
 }
 
 var _mfileSeekResponse = _bindings.CreateLazyMarshaler(fileSeekResponse{})
@@ -1175,7 +1179,7 @@
 
 type fileTruncateRequest struct {
 	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Length uint64
+	Length uint64   `fidl:"0"`
 }
 
 var _mfileTruncateRequest = _bindings.CreateLazyMarshaler(fileTruncateRequest{})
@@ -1186,7 +1190,7 @@
 
 type fileTruncateResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mfileTruncateResponse = _bindings.CreateLazyMarshaler(fileTruncateResponse{})
@@ -1197,8 +1201,8 @@
 
 type fileGetFlagsResponse struct {
 	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S     int32
-	Flags uint32
+	S     int32    `fidl:"0"`
+	Flags uint32   `fidl:"4"`
 }
 
 var _mfileGetFlagsResponse = _bindings.CreateLazyMarshaler(fileGetFlagsResponse{})
@@ -1209,7 +1213,7 @@
 
 type fileSetFlagsRequest struct {
 	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Flags uint32
+	Flags uint32   `fidl:"0"`
 }
 
 var _mfileSetFlagsRequest = _bindings.CreateLazyMarshaler(fileSetFlagsRequest{})
@@ -1220,7 +1224,7 @@
 
 type fileSetFlagsResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mfileSetFlagsResponse = _bindings.CreateLazyMarshaler(fileSetFlagsResponse{})
@@ -1231,7 +1235,7 @@
 
 type fileGetBufferRequest struct {
 	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Flags uint32
+	Flags uint32   `fidl:"0"`
 }
 
 var _mfileGetBufferRequest = _bindings.CreateLazyMarshaler(fileGetBufferRequest{})
@@ -1241,9 +1245,9 @@
 }
 
 type fileGetBufferResponse struct {
-	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S      int32
-	Buffer *fuchsiamem.Buffer
+	_      struct{}           `fidl:"s,16,0" fidl2:"s,16,0"`
+	S      int32              `fidl:"0"`
+	Buffer *fuchsiamem.Buffer `fidl:"8"`
 }
 
 var _mfileGetBufferResponse = _bindings.CreateLazyMarshaler(fileGetBufferResponse{})
@@ -1257,6 +1261,7 @@
 // Create another connection to the same remote object.
 //
 // `flags` may be any of:
+//
 // - `OPEN_RIGHT_*`
 // - `OPEN_FLAG_APPEND`
 // - `OPEN_FLAG_NO_REMOTE`
@@ -1269,7 +1274,8 @@
 // cloned object.
 // The cloned object must have rights less than or equal to the original object.
 // Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+// `CLONE_FLAG_SAME_RIGHTS`.
 func (p *FileInterface) Clone(flags uint32, object NodeInterfaceRequest) error {
 	req_ := &fileCloneRequest{
 		Flags:  flags,
@@ -1358,7 +1364,7 @@
 	return resp_.S, resp_.Handles, resp_.Out, err
 }
 
-// Reads 'count' bytes at the seek offset.
+// Reads `count` bytes at the seek offset.
 // The seek offset is moved forward by the number of bytes read.
 //
 // This method requires following rights: `OPEN_RIGHT_READABLE`.
@@ -1371,7 +1377,7 @@
 	return resp_.S, resp_.Data, err
 }
 
-// Reads 'count' bytes at the provided offset.
+// Reads `count` bytes at the provided offset.
 // Does not affect the seek offset.
 //
 // This method requires following rights: `OPEN_RIGHT_READABLE`.
@@ -1438,7 +1444,7 @@
 	return resp_.S, err
 }
 
-// Acquires the Directory::Open rights and flags used to access this file.
+// Acquires the `Directory.Open` rights and flags used to access this file.
 //
 // This method does not require any rights.
 func (p *FileInterface) GetFlags() (int32, uint32, error) {
@@ -1448,7 +1454,7 @@
 	return resp_.S, resp_.Flags, err
 }
 
-// Changes the Directory::Open flags used to access the file.
+// Changes the `Directory.Open` flags used to access the file.
 // Supported flags which can be turned on / off:
 // - `OPEN_FLAG_APPEND`
 //
@@ -1468,6 +1474,7 @@
 // `flags` may be any of `VMO_FLAG_*`.
 //
 // This method requires following rights:
+//
 // - `OPEN_RIGHT_WRITABLE` if `flags` includes `VMO_FLAG_WRITE`.
 // - `OPEN_RIGHT_READABLE` if `flags` includes `VMO_FLAG_READ` or `VMO_FLAG_EXEC`.
 func (p *FileInterface) GetBuffer(flags uint32) (int32, *fuchsiamem.Buffer, error) {
@@ -1484,6 +1491,7 @@
 	// Create another connection to the same remote object.
 	//
 	// `flags` may be any of:
+	//
 	// - `OPEN_RIGHT_*`
 	// - `OPEN_FLAG_APPEND`
 	// - `OPEN_FLAG_NO_REMOTE`
@@ -1496,7 +1504,8 @@
 	// cloned object.
 	// The cloned object must have rights less than or equal to the original object.
 	// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+	// `CLONE_FLAG_SAME_RIGHTS`.
 	Clone(flags uint32, object NodeInterfaceRequest) error
 	// Terminates connection with object.
 	//
@@ -1527,12 +1536,12 @@
 	SetAttr(flags uint32, attributes NodeAttributes) (int32, error)
 	// Deprecated. Only for use with compatibility with devhost.
 	Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error)
-	// Reads 'count' bytes at the seek offset.
+	// Reads `count` bytes at the seek offset.
 	// The seek offset is moved forward by the number of bytes read.
 	//
 	// This method requires following rights: `OPEN_RIGHT_READABLE`.
 	Read(count uint64) (int32, []uint8, error)
-	// Reads 'count' bytes at the provided offset.
+	// Reads `count` bytes at the provided offset.
 	// Does not affect the seek offset.
 	//
 	// This method requires following rights: `OPEN_RIGHT_READABLE`.
@@ -1556,11 +1565,11 @@
 	//
 	// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
 	Truncate(length uint64) (int32, error)
-	// Acquires the Directory::Open rights and flags used to access this file.
+	// Acquires the `Directory.Open` rights and flags used to access this file.
 	//
 	// This method does not require any rights.
 	GetFlags() (int32, uint32, error)
-	// Changes the Directory::Open flags used to access the file.
+	// Changes the `Directory.Open` flags used to access the file.
 	// Supported flags which can be turned on / off:
 	// - `OPEN_FLAG_APPEND`
 	//
@@ -1572,6 +1581,7 @@
 	// `flags` may be any of `VMO_FLAG_*`.
 	//
 	// This method requires following rights:
+	//
 	// - `OPEN_RIGHT_WRITABLE` if `flags` includes `VMO_FLAG_WRITE`.
 	// - `OPEN_RIGHT_READABLE` if `flags` includes `VMO_FLAG_READ` or `VMO_FLAG_EXEC`.
 	GetBuffer(flags uint32) (int32, *fuchsiamem.Buffer, error)
@@ -1790,7 +1800,7 @@
 
 type directoryWatcherOnEventRequest struct {
 	_      struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Events []uint8  `fidl:"8192" fidl2:"8192"`
+	Events []uint8  `fidl:"0,8192" fidl2:"8192"`
 }
 
 var _mdirectoryWatcherOnEventRequest = _bindings.CreateLazyMarshaler(directoryWatcherOnEventRequest{})
@@ -1811,7 +1821,7 @@
 
 // DirectoryWatcher transmits messages from a filesystem server
 // about events happening in the filesystem. Clients can register
-// new watchers using the Directory "Watch" method, where they can
+// new watchers using the `Directory.Watch` method, where they can
 // filter which events they want to receive notifications for.
 type DirectoryWatcher interface {
 	OnEvent(events []uint8) error
@@ -1896,9 +1906,9 @@
 )
 
 type directoryCloneRequest struct {
-	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Flags  uint32
-	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
+	_      struct{}             `fidl:"s,8,0" fidl2:"s,8,0"`
+	Flags  uint32               `fidl:"0"`
+	Object NodeInterfaceRequest `fidl:"4,0" fidl2:"0"`
 }
 
 var _mdirectoryCloneRequest = _bindings.CreateLazyMarshaler(directoryCloneRequest{})
@@ -1909,7 +1919,7 @@
 
 type directoryCloseResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryCloseResponse = _bindings.CreateLazyMarshaler(directoryCloseResponse{})
@@ -1920,7 +1930,7 @@
 
 type directoryDescribeResponse struct {
 	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
-	Info NodeInfo
+	Info NodeInfo `fidl:"0"`
 }
 
 var _mdirectoryDescribeResponse = _bindings.CreateLazyMarshaler(directoryDescribeResponse{})
@@ -1930,9 +1940,9 @@
 }
 
 type directoryOnOpenResponse struct {
-	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S    int32
-	Info *NodeInfo
+	_    struct{}  `fidl:"s,16,0" fidl2:"s,16,0"`
+	S    int32     `fidl:"0"`
+	Info *NodeInfo `fidl:"8"`
 }
 
 var _mdirectoryOnOpenResponse = _bindings.CreateLazyMarshaler(directoryOnOpenResponse{})
@@ -1943,7 +1953,7 @@
 
 type directorySyncResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectorySyncResponse = _bindings.CreateLazyMarshaler(directorySyncResponse{})
@@ -1953,9 +1963,9 @@
 }
 
 type directoryGetAttrResponse struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	S          int32
-	Attributes NodeAttributes
+	_          struct{}       `fidl:"s,64,0" fidl2:"s,64,0"`
+	S          int32          `fidl:"0"`
+	Attributes NodeAttributes `fidl:"8"`
 }
 
 var _mdirectoryGetAttrResponse = _bindings.CreateLazyMarshaler(directoryGetAttrResponse{})
@@ -1965,9 +1975,9 @@
 }
 
 type directorySetAttrRequest struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	Flags      uint32
-	Attributes NodeAttributes
+	_          struct{}       `fidl:"s,64,0" fidl2:"s,64,0"`
+	Flags      uint32         `fidl:"0"`
+	Attributes NodeAttributes `fidl:"8"`
 }
 
 var _mdirectorySetAttrRequest = _bindings.CreateLazyMarshaler(directorySetAttrRequest{})
@@ -1978,7 +1988,7 @@
 
 type directorySetAttrResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectorySetAttrResponse = _bindings.CreateLazyMarshaler(directorySetAttrResponse{})
@@ -1988,11 +1998,11 @@
 }
 
 type directoryIoctlRequest struct {
-	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
-	Opcode  uint32
-	MaxOut  uint64
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	In      []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,48,0" fidl2:"s,48,0"`
+	Opcode  uint32       `fidl:"0"`
+	MaxOut  uint64       `fidl:"8"`
+	Handles []_zx.Handle `fidl:"16,2,0" fidl2:"2,0"`
+	In      []uint8      `fidl:"32,8192" fidl2:"8192"`
 }
 
 var _mdirectoryIoctlRequest = _bindings.CreateLazyMarshaler(directoryIoctlRequest{})
@@ -2002,10 +2012,10 @@
 }
 
 type directoryIoctlResponse struct {
-	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
-	S       int32
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	Out     []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,40,0" fidl2:"s,40,0"`
+	S       int32        `fidl:"0"`
+	Handles []_zx.Handle `fidl:"8,2,0" fidl2:"2,0"`
+	Out     []uint8      `fidl:"24,8192" fidl2:"8192"`
 }
 
 var _mdirectoryIoctlResponse = _bindings.CreateLazyMarshaler(directoryIoctlResponse{})
@@ -2015,11 +2025,11 @@
 }
 
 type directoryOpenRequest struct {
-	_      struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
-	Flags  uint32
-	Mode   uint32
-	Path   string               `fidl:"4096" fidl2:"4096"`
-	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
+	_      struct{}             `fidl:"s,32,0" fidl2:"s,32,0"`
+	Flags  uint32               `fidl:"0"`
+	Mode   uint32               `fidl:"4"`
+	Path   string               `fidl:"8,4096" fidl2:"4096"`
+	Object NodeInterfaceRequest `fidl:"24,0" fidl2:"0"`
 }
 
 var _mdirectoryOpenRequest = _bindings.CreateLazyMarshaler(directoryOpenRequest{})
@@ -2030,7 +2040,7 @@
 
 type directoryUnlinkRequest struct {
 	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Path string   `fidl:"4096" fidl2:"4096"`
+	Path string   `fidl:"0,4096" fidl2:"4096"`
 }
 
 var _mdirectoryUnlinkRequest = _bindings.CreateLazyMarshaler(directoryUnlinkRequest{})
@@ -2041,7 +2051,7 @@
 
 type directoryUnlinkResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryUnlinkResponse = _bindings.CreateLazyMarshaler(directoryUnlinkResponse{})
@@ -2052,7 +2062,7 @@
 
 type directoryReadDirentsRequest struct {
 	_        struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	MaxBytes uint64
+	MaxBytes uint64   `fidl:"0"`
 }
 
 var _mdirectoryReadDirentsRequest = _bindings.CreateLazyMarshaler(directoryReadDirentsRequest{})
@@ -2063,8 +2073,8 @@
 
 type directoryReadDirentsResponse struct {
 	_       struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	S       int32
-	Dirents []uint8 `fidl:"8192" fidl2:"8192"`
+	S       int32    `fidl:"0"`
+	Dirents []uint8  `fidl:"8,8192" fidl2:"8192"`
 }
 
 var _mdirectoryReadDirentsResponse = _bindings.CreateLazyMarshaler(directoryReadDirentsResponse{})
@@ -2075,7 +2085,7 @@
 
 type directoryRewindResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryRewindResponse = _bindings.CreateLazyMarshaler(directoryRewindResponse{})
@@ -2085,9 +2095,9 @@
 }
 
 type directoryGetTokenResponse struct {
-	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S     int32
-	Token _zx.Handle `fidl:"1" fidl2:"1"`
+	_     struct{}   `fidl:"s,8,0" fidl2:"s,8,0"`
+	S     int32      `fidl:"0"`
+	Token _zx.Handle `fidl:"4,1" fidl2:"1"`
 }
 
 var _mdirectoryGetTokenResponse = _bindings.CreateLazyMarshaler(directoryGetTokenResponse{})
@@ -2098,9 +2108,9 @@
 
 type directoryRenameRequest struct {
 	_              struct{}   `fidl:"s,40,0" fidl2:"s,40,0"`
-	Src            string     `fidl:"4096" fidl2:"4096"`
-	DstParentToken _zx.Handle `fidl:"0" fidl2:"0"`
-	Dst            string     `fidl:"4096" fidl2:"4096"`
+	Src            string     `fidl:"0,4096" fidl2:"4096"`
+	DstParentToken _zx.Handle `fidl:"16,0" fidl2:"0"`
+	Dst            string     `fidl:"24,4096" fidl2:"4096"`
 }
 
 var _mdirectoryRenameRequest = _bindings.CreateLazyMarshaler(directoryRenameRequest{})
@@ -2111,7 +2121,7 @@
 
 type directoryRenameResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryRenameResponse = _bindings.CreateLazyMarshaler(directoryRenameResponse{})
@@ -2122,9 +2132,9 @@
 
 type directoryLinkRequest struct {
 	_              struct{}   `fidl:"s,40,0" fidl2:"s,40,0"`
-	Src            string     `fidl:"4096" fidl2:"4096"`
-	DstParentToken _zx.Handle `fidl:"0" fidl2:"0"`
-	Dst            string     `fidl:"4096" fidl2:"4096"`
+	Src            string     `fidl:"0,4096" fidl2:"4096"`
+	DstParentToken _zx.Handle `fidl:"16,0" fidl2:"0"`
+	Dst            string     `fidl:"24,4096" fidl2:"4096"`
 }
 
 var _mdirectoryLinkRequest = _bindings.CreateLazyMarshaler(directoryLinkRequest{})
@@ -2135,7 +2145,7 @@
 
 type directoryLinkResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryLinkResponse = _bindings.CreateLazyMarshaler(directoryLinkResponse{})
@@ -2145,10 +2155,10 @@
 }
 
 type directoryWatchRequest struct {
-	_       struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Mask    uint32
-	Options uint32
-	Watcher _zx.Channel `fidl:"0" fidl2:"0"`
+	_       struct{}    `fidl:"s,16,0" fidl2:"s,16,0"`
+	Mask    uint32      `fidl:"0"`
+	Options uint32      `fidl:"4"`
+	Watcher _zx.Channel `fidl:"8,0" fidl2:"0"`
 }
 
 var _mdirectoryWatchRequest = _bindings.CreateLazyMarshaler(directoryWatchRequest{})
@@ -2159,7 +2169,7 @@
 
 type directoryWatchResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryWatchResponse = _bindings.CreateLazyMarshaler(directoryWatchResponse{})
@@ -2173,6 +2183,7 @@
 // Create another connection to the same remote object.
 //
 // `flags` may be any of:
+//
 // - `OPEN_RIGHT_*`
 // - `OPEN_FLAG_APPEND`
 // - `OPEN_FLAG_NO_REMOTE`
@@ -2185,7 +2196,8 @@
 // cloned object.
 // The cloned object must have rights less than or equal to the original object.
 // Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+// `CLONE_FLAG_SAME_RIGHTS`.
 func (p *DirectoryInterface) Clone(flags uint32, object NodeInterfaceRequest) error {
 	req_ := &directoryCloneRequest{
 		Flags:  flags,
@@ -2277,7 +2289,7 @@
 // Opens a new object relative to this directory object.
 //
 // `path` may contain multiple segments, separated by "/" characters,
-// and should never be empty i.e. "" is an invalid path.
+// and should never be empty; i.e., "" is an invalid path.
 //
 // `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
 // The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
@@ -2286,8 +2298,8 @@
 // If an unknown value is sent for either flags or mode, the connection should
 // be closed.
 //
-// `OPEN_RIGHTS_*` flags provided in `flags` will restrict access rights on the `object` channel
-// which will be connected to the opened entity.
+// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
+// the `object` channel which will be connected to the opened entity.
 //
 // Rights are never increased. When you open a nested entity within a directory, you may only
 // request the same rights as what the directory connection already has, or a subset of those.
@@ -2349,17 +2361,19 @@
 // offset which is updated on subsequent calls to ReadDirents.
 //
 // These dirents are of the form:
+// ```
 // struct dirent {
 //   // Describes the inode of the entry.
 //   uint64 ino;
-//   // Describes the length of the dirent name.
+//   // Describes the length of the dirent name in bytes.
 //   uint8 size;
 //   // Describes the type of the entry. Aligned with the
-//   /// POSIX d_type values. Use `DIRENT_TYPE_*` constants.
+//   // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
 //   uint8 type;
 //   // Unterminated name of entry.
 //   char name[0];
 // }
+// ```
 //
 // This method does not require any rights, since one could always probe for
 // directory contents by triggering name conflicts during file creation.
@@ -2436,15 +2450,17 @@
 // Watches a directory, receiving events of added messages on the
 // watcher request channel.
 //
-// The "watcher" handle will send messages of the form:
+// The `watcher` handle will send messages of the form:
+// ```
 // struct {
 //   uint8 event;
 //   uint8 len;
 //   char name[];
 // };
+// ```
 // Where names are NOT null-terminated.
 //
-// This API is unstable"; in the future, watcher will be a "DirectoryWatcher" client.
+// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
 //
 // Mask specifies a bitmask of events to observe.
 // Options must be zero; it is reserved.
@@ -2466,6 +2482,7 @@
 	// Create another connection to the same remote object.
 	//
 	// `flags` may be any of:
+	//
 	// - `OPEN_RIGHT_*`
 	// - `OPEN_FLAG_APPEND`
 	// - `OPEN_FLAG_NO_REMOTE`
@@ -2478,7 +2495,8 @@
 	// cloned object.
 	// The cloned object must have rights less than or equal to the original object.
 	// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+	// `CLONE_FLAG_SAME_RIGHTS`.
 	Clone(flags uint32, object NodeInterfaceRequest) error
 	// Terminates connection with object.
 	//
@@ -2512,7 +2530,7 @@
 	// Opens a new object relative to this directory object.
 	//
 	// `path` may contain multiple segments, separated by "/" characters,
-	// and should never be empty i.e. "" is an invalid path.
+	// and should never be empty; i.e., "" is an invalid path.
 	//
 	// `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
 	// The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
@@ -2521,8 +2539,8 @@
 	// If an unknown value is sent for either flags or mode, the connection should
 	// be closed.
 	//
-	// `OPEN_RIGHTS_*` flags provided in `flags` will restrict access rights on the `object` channel
-	// which will be connected to the opened entity.
+	// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
+	// the `object` channel which will be connected to the opened entity.
 	//
 	// Rights are never increased. When you open a nested entity within a directory, you may only
 	// request the same rights as what the directory connection already has, or a subset of those.
@@ -2566,17 +2584,19 @@
 	// offset which is updated on subsequent calls to ReadDirents.
 	//
 	// These dirents are of the form:
+	// ```
 	// struct dirent {
 	//   // Describes the inode of the entry.
 	//   uint64 ino;
-	//   // Describes the length of the dirent name.
+	//   // Describes the length of the dirent name in bytes.
 	//   uint8 size;
 	//   // Describes the type of the entry. Aligned with the
-	//   /// POSIX d_type values. Use `DIRENT_TYPE_*` constants.
+	//   // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
 	//   uint8 type;
 	//   // Unterminated name of entry.
 	//   char name[0];
 	// }
+	// ```
 	//
 	// This method does not require any rights, since one could always probe for
 	// directory contents by triggering name conflicts during file creation.
@@ -2613,15 +2633,17 @@
 	// Watches a directory, receiving events of added messages on the
 	// watcher request channel.
 	//
-	// The "watcher" handle will send messages of the form:
+	// The `watcher` handle will send messages of the form:
+	// ```
 	// struct {
 	//   uint8 event;
 	//   uint8 len;
 	//   char name[];
 	// };
+	// ```
 	// Where names are NOT null-terminated.
 	//
-	// This API is unstable"; in the future, watcher will be a "DirectoryWatcher" client.
+	// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
 	//
 	// Mask specifies a bitmask of events to observe.
 	// Options must be zero; it is reserved.
@@ -2862,9 +2884,9 @@
 )
 
 type directoryAdminCloneRequest struct {
-	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Flags  uint32
-	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
+	_      struct{}             `fidl:"s,8,0" fidl2:"s,8,0"`
+	Flags  uint32               `fidl:"0"`
+	Object NodeInterfaceRequest `fidl:"4,0" fidl2:"0"`
 }
 
 var _mdirectoryAdminCloneRequest = _bindings.CreateLazyMarshaler(directoryAdminCloneRequest{})
@@ -2875,7 +2897,7 @@
 
 type directoryAdminCloseResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminCloseResponse = _bindings.CreateLazyMarshaler(directoryAdminCloseResponse{})
@@ -2886,7 +2908,7 @@
 
 type directoryAdminDescribeResponse struct {
 	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
-	Info NodeInfo
+	Info NodeInfo `fidl:"0"`
 }
 
 var _mdirectoryAdminDescribeResponse = _bindings.CreateLazyMarshaler(directoryAdminDescribeResponse{})
@@ -2896,9 +2918,9 @@
 }
 
 type directoryAdminOnOpenResponse struct {
-	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S    int32
-	Info *NodeInfo
+	_    struct{}  `fidl:"s,16,0" fidl2:"s,16,0"`
+	S    int32     `fidl:"0"`
+	Info *NodeInfo `fidl:"8"`
 }
 
 var _mdirectoryAdminOnOpenResponse = _bindings.CreateLazyMarshaler(directoryAdminOnOpenResponse{})
@@ -2909,7 +2931,7 @@
 
 type directoryAdminSyncResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminSyncResponse = _bindings.CreateLazyMarshaler(directoryAdminSyncResponse{})
@@ -2919,9 +2941,9 @@
 }
 
 type directoryAdminGetAttrResponse struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	S          int32
-	Attributes NodeAttributes
+	_          struct{}       `fidl:"s,64,0" fidl2:"s,64,0"`
+	S          int32          `fidl:"0"`
+	Attributes NodeAttributes `fidl:"8"`
 }
 
 var _mdirectoryAdminGetAttrResponse = _bindings.CreateLazyMarshaler(directoryAdminGetAttrResponse{})
@@ -2931,9 +2953,9 @@
 }
 
 type directoryAdminSetAttrRequest struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	Flags      uint32
-	Attributes NodeAttributes
+	_          struct{}       `fidl:"s,64,0" fidl2:"s,64,0"`
+	Flags      uint32         `fidl:"0"`
+	Attributes NodeAttributes `fidl:"8"`
 }
 
 var _mdirectoryAdminSetAttrRequest = _bindings.CreateLazyMarshaler(directoryAdminSetAttrRequest{})
@@ -2944,7 +2966,7 @@
 
 type directoryAdminSetAttrResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminSetAttrResponse = _bindings.CreateLazyMarshaler(directoryAdminSetAttrResponse{})
@@ -2954,11 +2976,11 @@
 }
 
 type directoryAdminIoctlRequest struct {
-	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
-	Opcode  uint32
-	MaxOut  uint64
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	In      []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,48,0" fidl2:"s,48,0"`
+	Opcode  uint32       `fidl:"0"`
+	MaxOut  uint64       `fidl:"8"`
+	Handles []_zx.Handle `fidl:"16,2,0" fidl2:"2,0"`
+	In      []uint8      `fidl:"32,8192" fidl2:"8192"`
 }
 
 var _mdirectoryAdminIoctlRequest = _bindings.CreateLazyMarshaler(directoryAdminIoctlRequest{})
@@ -2968,10 +2990,10 @@
 }
 
 type directoryAdminIoctlResponse struct {
-	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
-	S       int32
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	Out     []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,40,0" fidl2:"s,40,0"`
+	S       int32        `fidl:"0"`
+	Handles []_zx.Handle `fidl:"8,2,0" fidl2:"2,0"`
+	Out     []uint8      `fidl:"24,8192" fidl2:"8192"`
 }
 
 var _mdirectoryAdminIoctlResponse = _bindings.CreateLazyMarshaler(directoryAdminIoctlResponse{})
@@ -2981,11 +3003,11 @@
 }
 
 type directoryAdminOpenRequest struct {
-	_      struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
-	Flags  uint32
-	Mode   uint32
-	Path   string               `fidl:"4096" fidl2:"4096"`
-	Object NodeInterfaceRequest `fidl:"0" fidl2:"0"`
+	_      struct{}             `fidl:"s,32,0" fidl2:"s,32,0"`
+	Flags  uint32               `fidl:"0"`
+	Mode   uint32               `fidl:"4"`
+	Path   string               `fidl:"8,4096" fidl2:"4096"`
+	Object NodeInterfaceRequest `fidl:"24,0" fidl2:"0"`
 }
 
 var _mdirectoryAdminOpenRequest = _bindings.CreateLazyMarshaler(directoryAdminOpenRequest{})
@@ -2996,7 +3018,7 @@
 
 type directoryAdminUnlinkRequest struct {
 	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Path string   `fidl:"4096" fidl2:"4096"`
+	Path string   `fidl:"0,4096" fidl2:"4096"`
 }
 
 var _mdirectoryAdminUnlinkRequest = _bindings.CreateLazyMarshaler(directoryAdminUnlinkRequest{})
@@ -3007,7 +3029,7 @@
 
 type directoryAdminUnlinkResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminUnlinkResponse = _bindings.CreateLazyMarshaler(directoryAdminUnlinkResponse{})
@@ -3018,7 +3040,7 @@
 
 type directoryAdminReadDirentsRequest struct {
 	_        struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	MaxBytes uint64
+	MaxBytes uint64   `fidl:"0"`
 }
 
 var _mdirectoryAdminReadDirentsRequest = _bindings.CreateLazyMarshaler(directoryAdminReadDirentsRequest{})
@@ -3029,8 +3051,8 @@
 
 type directoryAdminReadDirentsResponse struct {
 	_       struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	S       int32
-	Dirents []uint8 `fidl:"8192" fidl2:"8192"`
+	S       int32    `fidl:"0"`
+	Dirents []uint8  `fidl:"8,8192" fidl2:"8192"`
 }
 
 var _mdirectoryAdminReadDirentsResponse = _bindings.CreateLazyMarshaler(directoryAdminReadDirentsResponse{})
@@ -3041,7 +3063,7 @@
 
 type directoryAdminRewindResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminRewindResponse = _bindings.CreateLazyMarshaler(directoryAdminRewindResponse{})
@@ -3051,9 +3073,9 @@
 }
 
 type directoryAdminGetTokenResponse struct {
-	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S     int32
-	Token _zx.Handle `fidl:"1" fidl2:"1"`
+	_     struct{}   `fidl:"s,8,0" fidl2:"s,8,0"`
+	S     int32      `fidl:"0"`
+	Token _zx.Handle `fidl:"4,1" fidl2:"1"`
 }
 
 var _mdirectoryAdminGetTokenResponse = _bindings.CreateLazyMarshaler(directoryAdminGetTokenResponse{})
@@ -3064,9 +3086,9 @@
 
 type directoryAdminRenameRequest struct {
 	_              struct{}   `fidl:"s,40,0" fidl2:"s,40,0"`
-	Src            string     `fidl:"4096" fidl2:"4096"`
-	DstParentToken _zx.Handle `fidl:"0" fidl2:"0"`
-	Dst            string     `fidl:"4096" fidl2:"4096"`
+	Src            string     `fidl:"0,4096" fidl2:"4096"`
+	DstParentToken _zx.Handle `fidl:"16,0" fidl2:"0"`
+	Dst            string     `fidl:"24,4096" fidl2:"4096"`
 }
 
 var _mdirectoryAdminRenameRequest = _bindings.CreateLazyMarshaler(directoryAdminRenameRequest{})
@@ -3077,7 +3099,7 @@
 
 type directoryAdminRenameResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminRenameResponse = _bindings.CreateLazyMarshaler(directoryAdminRenameResponse{})
@@ -3088,9 +3110,9 @@
 
 type directoryAdminLinkRequest struct {
 	_              struct{}   `fidl:"s,40,0" fidl2:"s,40,0"`
-	Src            string     `fidl:"4096" fidl2:"4096"`
-	DstParentToken _zx.Handle `fidl:"0" fidl2:"0"`
-	Dst            string     `fidl:"4096" fidl2:"4096"`
+	Src            string     `fidl:"0,4096" fidl2:"4096"`
+	DstParentToken _zx.Handle `fidl:"16,0" fidl2:"0"`
+	Dst            string     `fidl:"24,4096" fidl2:"4096"`
 }
 
 var _mdirectoryAdminLinkRequest = _bindings.CreateLazyMarshaler(directoryAdminLinkRequest{})
@@ -3101,7 +3123,7 @@
 
 type directoryAdminLinkResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminLinkResponse = _bindings.CreateLazyMarshaler(directoryAdminLinkResponse{})
@@ -3111,10 +3133,10 @@
 }
 
 type directoryAdminWatchRequest struct {
-	_       struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Mask    uint32
-	Options uint32
-	Watcher _zx.Channel `fidl:"0" fidl2:"0"`
+	_       struct{}    `fidl:"s,16,0" fidl2:"s,16,0"`
+	Mask    uint32      `fidl:"0"`
+	Options uint32      `fidl:"4"`
+	Watcher _zx.Channel `fidl:"8,0" fidl2:"0"`
 }
 
 var _mdirectoryAdminWatchRequest = _bindings.CreateLazyMarshaler(directoryAdminWatchRequest{})
@@ -3125,7 +3147,7 @@
 
 type directoryAdminWatchResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminWatchResponse = _bindings.CreateLazyMarshaler(directoryAdminWatchResponse{})
@@ -3135,8 +3157,8 @@
 }
 
 type directoryAdminMountRequest struct {
-	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Remote DirectoryInterface
+	_      struct{}           `fidl:"s,8,0" fidl2:"s,8,0"`
+	Remote DirectoryInterface `fidl:"0"`
 }
 
 var _mdirectoryAdminMountRequest = _bindings.CreateLazyMarshaler(directoryAdminMountRequest{})
@@ -3147,7 +3169,7 @@
 
 type directoryAdminMountResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminMountResponse = _bindings.CreateLazyMarshaler(directoryAdminMountResponse{})
@@ -3157,10 +3179,10 @@
 }
 
 type directoryAdminMountAndCreateRequest struct {
-	_      struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
-	Remote DirectoryInterface
-	Name   string `fidl:"255" fidl2:"255"`
-	Flags  uint32
+	_      struct{}           `fidl:"s,32,0" fidl2:"s,32,0"`
+	Remote DirectoryInterface `fidl:"0"`
+	Name   string             `fidl:"8,255" fidl2:"255"`
+	Flags  uint32             `fidl:"24"`
 }
 
 var _mdirectoryAdminMountAndCreateRequest = _bindings.CreateLazyMarshaler(directoryAdminMountAndCreateRequest{})
@@ -3171,7 +3193,7 @@
 
 type directoryAdminMountAndCreateResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminMountAndCreateResponse = _bindings.CreateLazyMarshaler(directoryAdminMountAndCreateResponse{})
@@ -3182,7 +3204,7 @@
 
 type directoryAdminUnmountResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mdirectoryAdminUnmountResponse = _bindings.CreateLazyMarshaler(directoryAdminUnmountResponse{})
@@ -3192,9 +3214,9 @@
 }
 
 type directoryAdminUnmountNodeResponse struct {
-	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S      int32
-	Remote DirectoryInterface
+	_      struct{}           `fidl:"s,8,0" fidl2:"s,8,0"`
+	S      int32              `fidl:"0"`
+	Remote DirectoryInterface `fidl:"4"`
 }
 
 var _mdirectoryAdminUnmountNodeResponse = _bindings.CreateLazyMarshaler(directoryAdminUnmountNodeResponse{})
@@ -3204,9 +3226,9 @@
 }
 
 type directoryAdminQueryFilesystemResponse struct {
-	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S    int32
-	Info *FilesystemInfo
+	_    struct{}        `fidl:"s,16,0" fidl2:"s,16,0"`
+	S    int32           `fidl:"0"`
+	Info *FilesystemInfo `fidl:"8"`
 }
 
 var _mdirectoryAdminQueryFilesystemResponse = _bindings.CreateLazyMarshaler(directoryAdminQueryFilesystemResponse{})
@@ -3217,8 +3239,8 @@
 
 type directoryAdminGetDevicePathResponse struct {
 	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	S    int32
-	Path *string `fidl:"4096" fidl2:"4096"`
+	S    int32    `fidl:"0"`
+	Path *string  `fidl:"8,4096" fidl2:"4096"`
 }
 
 var _mdirectoryAdminGetDevicePathResponse = _bindings.CreateLazyMarshaler(directoryAdminGetDevicePathResponse{})
@@ -3232,6 +3254,7 @@
 // Create another connection to the same remote object.
 //
 // `flags` may be any of:
+//
 // - `OPEN_RIGHT_*`
 // - `OPEN_FLAG_APPEND`
 // - `OPEN_FLAG_NO_REMOTE`
@@ -3244,7 +3267,8 @@
 // cloned object.
 // The cloned object must have rights less than or equal to the original object.
 // Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+// `CLONE_FLAG_SAME_RIGHTS`.
 func (p *DirectoryAdminInterface) Clone(flags uint32, object NodeInterfaceRequest) error {
 	req_ := &directoryAdminCloneRequest{
 		Flags:  flags,
@@ -3336,7 +3360,7 @@
 // Opens a new object relative to this directory object.
 //
 // `path` may contain multiple segments, separated by "/" characters,
-// and should never be empty i.e. "" is an invalid path.
+// and should never be empty; i.e., "" is an invalid path.
 //
 // `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
 // The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
@@ -3345,8 +3369,8 @@
 // If an unknown value is sent for either flags or mode, the connection should
 // be closed.
 //
-// `OPEN_RIGHTS_*` flags provided in `flags` will restrict access rights on the `object` channel
-// which will be connected to the opened entity.
+// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
+// the `object` channel which will be connected to the opened entity.
 //
 // Rights are never increased. When you open a nested entity within a directory, you may only
 // request the same rights as what the directory connection already has, or a subset of those.
@@ -3408,17 +3432,19 @@
 // offset which is updated on subsequent calls to ReadDirents.
 //
 // These dirents are of the form:
+// ```
 // struct dirent {
 //   // Describes the inode of the entry.
 //   uint64 ino;
-//   // Describes the length of the dirent name.
+//   // Describes the length of the dirent name in bytes.
 //   uint8 size;
 //   // Describes the type of the entry. Aligned with the
-//   /// POSIX d_type values. Use `DIRENT_TYPE_*` constants.
+//   // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
 //   uint8 type;
 //   // Unterminated name of entry.
 //   char name[0];
 // }
+// ```
 //
 // This method does not require any rights, since one could always probe for
 // directory contents by triggering name conflicts during file creation.
@@ -3495,15 +3521,17 @@
 // Watches a directory, receiving events of added messages on the
 // watcher request channel.
 //
-// The "watcher" handle will send messages of the form:
+// The `watcher` handle will send messages of the form:
+// ```
 // struct {
 //   uint8 event;
 //   uint8 len;
 //   char name[];
 // };
+// ```
 // Where names are NOT null-terminated.
 //
-// This API is unstable"; in the future, watcher will be a "DirectoryWatcher" client.
+// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
 //
 // Mask specifies a bitmask of events to observe.
 // Options must be zero; it is reserved.
@@ -3586,6 +3614,7 @@
 	// Create another connection to the same remote object.
 	//
 	// `flags` may be any of:
+	//
 	// - `OPEN_RIGHT_*`
 	// - `OPEN_FLAG_APPEND`
 	// - `OPEN_FLAG_NO_REMOTE`
@@ -3598,7 +3627,8 @@
 	// cloned object.
 	// The cloned object must have rights less than or equal to the original object.
 	// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+	// `CLONE_FLAG_SAME_RIGHTS`.
 	Clone(flags uint32, object NodeInterfaceRequest) error
 	// Terminates connection with object.
 	//
@@ -3632,7 +3662,7 @@
 	// Opens a new object relative to this directory object.
 	//
 	// `path` may contain multiple segments, separated by "/" characters,
-	// and should never be empty i.e. "" is an invalid path.
+	// and should never be empty; i.e., "" is an invalid path.
 	//
 	// `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
 	// The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
@@ -3641,8 +3671,8 @@
 	// If an unknown value is sent for either flags or mode, the connection should
 	// be closed.
 	//
-	// `OPEN_RIGHTS_*` flags provided in `flags` will restrict access rights on the `object` channel
-	// which will be connected to the opened entity.
+	// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
+	// the `object` channel which will be connected to the opened entity.
 	//
 	// Rights are never increased. When you open a nested entity within a directory, you may only
 	// request the same rights as what the directory connection already has, or a subset of those.
@@ -3686,17 +3716,19 @@
 	// offset which is updated on subsequent calls to ReadDirents.
 	//
 	// These dirents are of the form:
+	// ```
 	// struct dirent {
 	//   // Describes the inode of the entry.
 	//   uint64 ino;
-	//   // Describes the length of the dirent name.
+	//   // Describes the length of the dirent name in bytes.
 	//   uint8 size;
 	//   // Describes the type of the entry. Aligned with the
-	//   /// POSIX d_type values. Use `DIRENT_TYPE_*` constants.
+	//   // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
 	//   uint8 type;
 	//   // Unterminated name of entry.
 	//   char name[0];
 	// }
+	// ```
 	//
 	// This method does not require any rights, since one could always probe for
 	// directory contents by triggering name conflicts during file creation.
@@ -3733,15 +3765,17 @@
 	// Watches a directory, receiving events of added messages on the
 	// watcher request channel.
 	//
-	// The "watcher" handle will send messages of the form:
+	// The `watcher` handle will send messages of the form:
+	// ```
 	// struct {
 	//   uint8 event;
 	//   uint8 len;
 	//   char name[];
 	// };
+	// ```
 	// Where names are NOT null-terminated.
 	//
-	// This API is unstable"; in the future, watcher will be a "DirectoryWatcher" client.
+	// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
 	//
 	// Mask specifies a bitmask of events to observe.
 	// Options must be zero; it is reserved.
diff --git a/src/syscall/zx/net/impl.go b/src/syscall/zx/net/impl.go
index f4fa5dc..36af0c1 100644
--- a/src/syscall/zx/net/impl.go
+++ b/src/syscall/zx/net/impl.go
@@ -54,9 +54,9 @@
 )
 
 type controlCloneRequest struct {
-	_      struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Flags  uint32
-	Object fuchsiaio.NodeInterfaceRequest `fidl:"0" fidl2:"0"`
+	_      struct{}                       `fidl:"s,8,0" fidl2:"s,8,0"`
+	Flags  uint32                         `fidl:"0"`
+	Object fuchsiaio.NodeInterfaceRequest `fidl:"4,0" fidl2:"0"`
 }
 
 var _mcontrolCloneRequest = _bindings.CreateLazyMarshaler(controlCloneRequest{})
@@ -67,7 +67,7 @@
 
 type controlCloseResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mcontrolCloseResponse = _bindings.CreateLazyMarshaler(controlCloseResponse{})
@@ -77,8 +77,8 @@
 }
 
 type controlDescribeResponse struct {
-	_    struct{} `fidl:"s,32,0" fidl2:"s,32,0"`
-	Info fuchsiaio.NodeInfo
+	_    struct{}           `fidl:"s,32,0" fidl2:"s,32,0"`
+	Info fuchsiaio.NodeInfo `fidl:"0"`
 }
 
 var _mcontrolDescribeResponse = _bindings.CreateLazyMarshaler(controlDescribeResponse{})
@@ -88,9 +88,9 @@
 }
 
 type controlOnOpenResponse struct {
-	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	S    int32
-	Info *fuchsiaio.NodeInfo
+	_    struct{}            `fidl:"s,16,0" fidl2:"s,16,0"`
+	S    int32               `fidl:"0"`
+	Info *fuchsiaio.NodeInfo `fidl:"8"`
 }
 
 var _mcontrolOnOpenResponse = _bindings.CreateLazyMarshaler(controlOnOpenResponse{})
@@ -101,7 +101,7 @@
 
 type controlSyncResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mcontrolSyncResponse = _bindings.CreateLazyMarshaler(controlSyncResponse{})
@@ -111,9 +111,9 @@
 }
 
 type controlGetAttrResponse struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	S          int32
-	Attributes fuchsiaio.NodeAttributes
+	_          struct{}                 `fidl:"s,64,0" fidl2:"s,64,0"`
+	S          int32                    `fidl:"0"`
+	Attributes fuchsiaio.NodeAttributes `fidl:"8"`
 }
 
 var _mcontrolGetAttrResponse = _bindings.CreateLazyMarshaler(controlGetAttrResponse{})
@@ -123,9 +123,9 @@
 }
 
 type controlSetAttrRequest struct {
-	_          struct{} `fidl:"s,64,0" fidl2:"s,64,0"`
-	Flags      uint32
-	Attributes fuchsiaio.NodeAttributes
+	_          struct{}                 `fidl:"s,64,0" fidl2:"s,64,0"`
+	Flags      uint32                   `fidl:"0"`
+	Attributes fuchsiaio.NodeAttributes `fidl:"8"`
 }
 
 var _mcontrolSetAttrRequest = _bindings.CreateLazyMarshaler(controlSetAttrRequest{})
@@ -136,7 +136,7 @@
 
 type controlSetAttrResponse struct {
 	_ struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	S int32
+	S int32    `fidl:"0"`
 }
 
 var _mcontrolSetAttrResponse = _bindings.CreateLazyMarshaler(controlSetAttrResponse{})
@@ -146,11 +146,11 @@
 }
 
 type controlIoctlRequest struct {
-	_       struct{} `fidl:"s,48,0" fidl2:"s,48,0"`
-	Opcode  uint32
-	MaxOut  uint64
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	In      []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,48,0" fidl2:"s,48,0"`
+	Opcode  uint32       `fidl:"0"`
+	MaxOut  uint64       `fidl:"8"`
+	Handles []_zx.Handle `fidl:"16,2,0" fidl2:"2,0"`
+	In      []uint8      `fidl:"32,8192" fidl2:"8192"`
 }
 
 var _mcontrolIoctlRequest = _bindings.CreateLazyMarshaler(controlIoctlRequest{})
@@ -160,10 +160,10 @@
 }
 
 type controlIoctlResponse struct {
-	_       struct{} `fidl:"s,40,0" fidl2:"s,40,0"`
-	S       int32
-	Handles []_zx.Handle `fidl:"2,0" fidl2:"2,0"`
-	Out     []uint8      `fidl:"8192" fidl2:"8192"`
+	_       struct{}     `fidl:"s,40,0" fidl2:"s,40,0"`
+	S       int32        `fidl:"0"`
+	Handles []_zx.Handle `fidl:"8,2,0" fidl2:"2,0"`
+	Out     []uint8      `fidl:"24,8192" fidl2:"8192"`
 }
 
 var _mcontrolIoctlResponse = _bindings.CreateLazyMarshaler(controlIoctlResponse{})
@@ -174,7 +174,7 @@
 
 type controlBindRequest struct {
 	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Addr []uint8
+	Addr []uint8  `fidl:"0,"`
 }
 
 var _mcontrolBindRequest = _bindings.CreateLazyMarshaler(controlBindRequest{})
@@ -185,7 +185,7 @@
 
 type controlBindResponse struct {
 	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Code int16
+	Code int16    `fidl:"0"`
 }
 
 var _mcontrolBindResponse = _bindings.CreateLazyMarshaler(controlBindResponse{})
@@ -196,7 +196,7 @@
 
 type controlConnectRequest struct {
 	_    struct{} `fidl:"s,16,0" fidl2:"s,16,0"`
-	Addr []uint8
+	Addr []uint8  `fidl:"0,"`
 }
 
 var _mcontrolConnectRequest = _bindings.CreateLazyMarshaler(controlConnectRequest{})
@@ -207,7 +207,7 @@
 
 type controlConnectResponse struct {
 	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Code int16
+	Code int16    `fidl:"0"`
 }
 
 var _mcontrolConnectResponse = _bindings.CreateLazyMarshaler(controlConnectResponse{})
@@ -218,7 +218,7 @@
 
 type controlListenRequest struct {
 	_       struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Backlog int16
+	Backlog int16    `fidl:"0"`
 }
 
 var _mcontrolListenRequest = _bindings.CreateLazyMarshaler(controlListenRequest{})
@@ -229,7 +229,7 @@
 
 type controlListenResponse struct {
 	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Code int16
+	Code int16    `fidl:"0"`
 }
 
 var _mcontrolListenResponse = _bindings.CreateLazyMarshaler(controlListenResponse{})
@@ -240,7 +240,7 @@
 
 type controlAcceptRequest struct {
 	_     struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Flags int16
+	Flags int16    `fidl:"0"`
 }
 
 var _mcontrolAcceptRequest = _bindings.CreateLazyMarshaler(controlAcceptRequest{})
@@ -250,9 +250,9 @@
 }
 
 type controlAcceptResponse struct {
-	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Code int16
-	S    ControlInterface
+	_    struct{}         `fidl:"s,8,0" fidl2:"s,8,0"`
+	Code int16            `fidl:"0"`
+	S    ControlInterface `fidl:"4"`
 }
 
 var _mcontrolAcceptResponse = _bindings.CreateLazyMarshaler(controlAcceptResponse{})
@@ -263,8 +263,8 @@
 
 type controlGetSockNameResponse struct {
 	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	Code int16
-	Addr []uint8
+	Code int16    `fidl:"0"`
+	Addr []uint8  `fidl:"8,"`
 }
 
 var _mcontrolGetSockNameResponse = _bindings.CreateLazyMarshaler(controlGetSockNameResponse{})
@@ -275,8 +275,8 @@
 
 type controlGetPeerNameResponse struct {
 	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	Code int16
-	Addr []uint8
+	Code int16    `fidl:"0"`
+	Addr []uint8  `fidl:"8,"`
 }
 
 var _mcontrolGetPeerNameResponse = _bindings.CreateLazyMarshaler(controlGetPeerNameResponse{})
@@ -287,9 +287,9 @@
 
 type controlSetSockOptRequest struct {
 	_       struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	Level   int16
-	Optname int16
-	Optval  []uint8
+	Level   int16    `fidl:"0"`
+	Optname int16    `fidl:"2"`
+	Optval  []uint8  `fidl:"8,"`
 }
 
 var _mcontrolSetSockOptRequest = _bindings.CreateLazyMarshaler(controlSetSockOptRequest{})
@@ -300,7 +300,7 @@
 
 type controlSetSockOptResponse struct {
 	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Code int16
+	Code int16    `fidl:"0"`
 }
 
 var _mcontrolSetSockOptResponse = _bindings.CreateLazyMarshaler(controlSetSockOptResponse{})
@@ -311,8 +311,8 @@
 
 type controlGetSockOptRequest struct {
 	_       struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Level   int16
-	Optname int16
+	Level   int16    `fidl:"0"`
+	Optname int16    `fidl:"2"`
 }
 
 var _mcontrolGetSockOptRequest = _bindings.CreateLazyMarshaler(controlGetSockOptRequest{})
@@ -323,8 +323,8 @@
 
 type controlGetSockOptResponse struct {
 	_      struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	Code   int16
-	Optval []uint8
+	Code   int16    `fidl:"0"`
+	Optval []uint8  `fidl:"8,"`
 }
 
 var _mcontrolGetSockOptResponse = _bindings.CreateLazyMarshaler(controlGetSockOptResponse{})
@@ -335,8 +335,8 @@
 
 type controlIoctlPosixRequest struct {
 	_   struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	Req int16
-	In  []uint8
+	Req int16    `fidl:"0"`
+	In  []uint8  `fidl:"8,"`
 }
 
 var _mcontrolIoctlPosixRequest = _bindings.CreateLazyMarshaler(controlIoctlPosixRequest{})
@@ -347,8 +347,8 @@
 
 type controlIoctlPosixResponse struct {
 	_    struct{} `fidl:"s,24,0" fidl2:"s,24,0"`
-	Code int16
-	Out  []uint8
+	Code int16    `fidl:"0"`
+	Out  []uint8  `fidl:"8,"`
 }
 
 var _mcontrolIoctlPosixResponse = _bindings.CreateLazyMarshaler(controlIoctlPosixResponse{})
@@ -362,6 +362,7 @@
 // Create another connection to the same remote object.
 //
 // `flags` may be any of:
+//
 // - `OPEN_RIGHT_*`
 // - `OPEN_FLAG_APPEND`
 // - `OPEN_FLAG_NO_REMOTE`
@@ -374,7 +375,8 @@
 // cloned object.
 // The cloned object must have rights less than or equal to the original object.
 // Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+// `CLONE_FLAG_SAME_RIGHTS`.
 func (p *ControlInterface) Clone(flags uint32, object fuchsiaio.NodeInterfaceRequest) error {
 	req_ := &controlCloneRequest{
 		Flags:  flags,
@@ -567,6 +569,7 @@
 	// Create another connection to the same remote object.
 	//
 	// `flags` may be any of:
+	//
 	// - `OPEN_RIGHT_*`
 	// - `OPEN_FLAG_APPEND`
 	// - `OPEN_FLAG_NO_REMOTE`
@@ -579,7 +582,8 @@
 	// cloned object.
 	// The cloned object must have rights less than or equal to the original object.
 	// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
-	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with `CLONE_FLAG_SAME_RIGHTS`.
+	// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
+	// `CLONE_FLAG_SAME_RIGHTS`.
 	Clone(flags uint32, object fuchsiaio.NodeInterfaceRequest) error
 	// Terminates connection with object.
 	//
@@ -838,9 +842,9 @@
 
 type providerSocketRequest struct {
 	_        struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Domain   int16
-	Type     int16
-	Protocol int16
+	Domain   int16    `fidl:"0"`
+	Type     int16    `fidl:"2"`
+	Protocol int16    `fidl:"4"`
 }
 
 var _mproviderSocketRequest = _bindings.CreateLazyMarshaler(providerSocketRequest{})
@@ -850,9 +854,9 @@
 }
 
 type providerSocketResponse struct {
-	_    struct{} `fidl:"s,8,0" fidl2:"s,8,0"`
-	Code int16
-	S    ControlInterface
+	_    struct{}         `fidl:"s,8,0" fidl2:"s,8,0"`
+	Code int16            `fidl:"0"`
+	S    ControlInterface `fidl:"4"`
 }
 
 var _mproviderSocketResponse = _bindings.CreateLazyMarshaler(providerSocketResponse{})