discovery: Update to use the new mojo profile

MultiPart: 2/5
Change-Id: I0411cc459d2149a5ee1ca33e0b0cee50384f07bc
diff --git a/Makefile b/Makefile
index a3240c5..010712f 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,7 @@
 endef
 
 V23_GO_FILES := $(shell find $(JIRI_ROOT) -name "*.go")
+PYTHONPATH := $(MOJO_SDK)/src/mojo/public/third_party:$(PYTHONPATH)
 
 all: build
 
diff --git a/go/src/mojom/vanadium/discovery/discovery.mojom.go b/go/src/mojom/vanadium/discovery/discovery.mojom.go
index ebc0dbf..44df270 100644
--- a/go/src/mojom/vanadium/discovery/discovery.mojom.go
+++ b/go/src/mojom/vanadium/discovery/discovery.mojom.go
@@ -19,85 +19,6 @@
 	sort "sort"
 )
 
-// These IDs are the Mojom Identifiers / Type Keys.
-// Mojom libraries importing this one will use these identifiers when building
-// TypeReference objects.
-var ID_discovery_UpdateType__ string = "discovery_UpdateType__"
-var ID_discovery_Service__ string = "discovery_Service__"
-var ID_discovery_Update__ string = "discovery_Update__"
-var ID_discovery_Error__ string = "discovery_Error__"
-var ID_discovery_Advertiser__ string = "discovery_Advertiser__"
-var ID_discovery_Scanner__ string = "discovery_Scanner__"
-var ID_discovery_ScanHandler__ string = "discovery_ScanHandler__"
-
-var discoveryDesc__ = make(map[string]mojom_types.UserDefinedType)
-
-func init() {
-	discoveryDesc__["discovery_UpdateType__"] = &mojom_types.UserDefinedTypeEnumType{
-		Value: discovery_UpdateType__(),
-	}
-	discoveryDesc__["discovery_Service__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Service__(),
-	}
-
-	discoveryDesc__["discovery_Update__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Update__(),
-	}
-
-	discoveryDesc__["discovery_Error__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Error__(),
-	}
-
-	discoveryDesc__["discovery_Advertiser__"] = &mojom_types.UserDefinedTypeInterfaceType{
-		Value: discovery_Advertiser__(),
-	}
-	discoveryDesc__["discovery_Advertiser_Advertise_Params__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Advertiser_Advertise_Params__(),
-	}
-
-	discoveryDesc__["discovery_Advertiser_Advertise_ResponseParams__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Advertiser_Advertise_ResponseParams__(),
-	}
-
-	discoveryDesc__["discovery_Advertiser_Stop_Params__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Advertiser_Stop_Params__(),
-	}
-
-	discoveryDesc__["discovery_Advertiser_Stop_ResponseParams__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Advertiser_Stop_ResponseParams__(),
-	}
-
-	discoveryDesc__["discovery_Scanner__"] = &mojom_types.UserDefinedTypeInterfaceType{
-		Value: discovery_Scanner__(),
-	}
-	discoveryDesc__["discovery_Scanner_Scan_Params__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Scanner_Scan_Params__(),
-	}
-
-	discoveryDesc__["discovery_ScanHandler__"] = &mojom_types.UserDefinedTypeInterfaceType{
-		Value: discovery_ScanHandler__(),
-	}
-	discoveryDesc__["discovery_ScanHandler_Update_Params__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_ScanHandler_Update_Params__(),
-	}
-
-	discoveryDesc__["discovery_Scanner_Scan_ResponseParams__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Scanner_Scan_ResponseParams__(),
-	}
-
-	discoveryDesc__["discovery_Scanner_Stop_Params__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Scanner_Stop_Params__(),
-	}
-
-	discoveryDesc__["discovery_Scanner_Stop_ResponseParams__"] = &mojom_types.UserDefinedTypeStructType{
-		Value: discovery_Scanner_Stop_ResponseParams__(),
-	}
-
-}
-func GetAllMojomTypeDefinitions() map[string]mojom_types.UserDefinedType {
-	return discoveryDesc__
-}
-
 type UpdateType int32
 
 const (
@@ -105,36 +26,6 @@
 	UpdateType_Lost  = UpdateType_Found + 1
 )
 
-// String names and labels used by the MojomEnum types.
-var (
-	enumName_UpdateType            = "UpdateType"
-	enumFullIdentifier_UpdateType  = "discovery.UpdateType"
-	enumFieldName_UpdateType_Found = "Found"
-	enumFieldName_UpdateType_Lost  = "Lost"
-)
-
-func discovery_UpdateType__() mojom_types.MojomEnum {
-	return mojom_types.MojomEnum{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &enumName_UpdateType,
-			FullIdentifier: &enumFullIdentifier_UpdateType,
-		},
-		Values: []mojom_types.EnumValue{mojom_types.EnumValue{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &enumFieldName_UpdateType_Found,
-			},
-			EnumTypeKey: ID_discovery_UpdateType__,
-			IntValue:    int32(1),
-		}, mojom_types.EnumValue{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &enumFieldName_UpdateType_Lost,
-			},
-			EnumTypeKey: ID_discovery_UpdateType__,
-			IntValue:    int32(2),
-		}},
-	}
-}
-
 type Advertiser interface {
 	Advertise(inService Service, inVisibility *[]string) (outHandle uint32, outInstanceId string, outErr *Error, err error)
 	Stop(inH uint32) (outErr *Error, err error)
@@ -315,38 +206,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_AdvertiserAdvertiseParams                   = "AdvertiserAdvertiseParams"
-	structFullIdentifier_AdvertiserAdvertiseParams         = "discovery.AdvertiserAdvertiseParams"
-	structFieldName_AdvertiserAdvertiseParams_InService    = "InService"
-	structFieldName_AdvertiserAdvertiseParams_InVisibility = "InVisibility"
-)
-
-func discovery_Advertiser_Advertise_Params__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_AdvertiserAdvertiseParams,
-			FullIdentifier: &structFullIdentifier_AdvertiserAdvertiseParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_AdvertiserAdvertiseParams_InService,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Identifier: &ID_discovery_Service__,
-					TypeKey: &ID_discovery_Service__},
-			},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_AdvertiserAdvertiseParams_InVisibility,
-			},
-			Type: &mojom_types.TypeArrayType{
-				Value: mojom_types.ArrayType{Nullable: true, ElementType: &mojom_types.TypeStringType{mojom_types.StringType{false}}},
-			},
-		}},
-	}
-}
-
 type advertiser_Advertise_ResponseParams struct {
 	outHandle     uint32
 	outInstanceId string
@@ -445,42 +304,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_AdvertiserAdvertiseResponseParams                    = "AdvertiserAdvertiseResponseParams"
-	structFullIdentifier_AdvertiserAdvertiseResponseParams          = "discovery.AdvertiserAdvertiseResponseParams"
-	structFieldName_AdvertiserAdvertiseResponseParams_OutHandle     = "OutHandle"
-	structFieldName_AdvertiserAdvertiseResponseParams_OutInstanceId = "OutInstanceId"
-	structFieldName_AdvertiserAdvertiseResponseParams_OutErr        = "OutErr"
-)
-
-func discovery_Advertiser_Advertise_ResponseParams__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_AdvertiserAdvertiseResponseParams,
-			FullIdentifier: &structFullIdentifier_AdvertiserAdvertiseResponseParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_AdvertiserAdvertiseResponseParams_OutHandle,
-			},
-			Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_UinT32},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_AdvertiserAdvertiseResponseParams_OutInstanceId,
-			},
-			Type: &mojom_types.TypeStringType{mojom_types.StringType{false}},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_AdvertiserAdvertiseResponseParams_OutErr,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Nullable: true, Identifier: &ID_discovery_Error__,
-					TypeKey: &ID_discovery_Error__},
-			},
-		}},
-	}
-}
-
 func (p *Advertiser_Proxy) Advertise(inService Service, inVisibility *[]string) (outHandle uint32, outInstanceId string, outErr *Error, err error) {
 	payload := &advertiser_Advertise_Params{
 		inService,
@@ -576,27 +399,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_AdvertiserStopParams           = "AdvertiserStopParams"
-	structFullIdentifier_AdvertiserStopParams = "discovery.AdvertiserStopParams"
-	structFieldName_AdvertiserStopParams_InH  = "InH"
-)
-
-func discovery_Advertiser_Stop_Params__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_AdvertiserStopParams,
-			FullIdentifier: &structFullIdentifier_AdvertiserStopParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_AdvertiserStopParams_InH,
-			},
-			Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_UinT32},
-		}},
-	}
-}
-
 type advertiser_Stop_ResponseParams struct {
 	outErr *Error
 }
@@ -662,30 +464,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_AdvertiserStopResponseParams             = "AdvertiserStopResponseParams"
-	structFullIdentifier_AdvertiserStopResponseParams   = "discovery.AdvertiserStopResponseParams"
-	structFieldName_AdvertiserStopResponseParams_OutErr = "OutErr"
-)
-
-func discovery_Advertiser_Stop_ResponseParams__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_AdvertiserStopResponseParams,
-			FullIdentifier: &structFullIdentifier_AdvertiserStopResponseParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_AdvertiserStopResponseParams_OutErr,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Nullable: true, Identifier: &ID_discovery_Error__,
-					TypeKey: &ID_discovery_Error__},
-			},
-		}},
-	}
-}
-
 func (p *Advertiser_Proxy) Stop(inH uint32) (outErr *Error, err error) {
 	payload := &advertiser_Stop_Params{
 		inH,
@@ -737,41 +515,6 @@
 	return bindings.NewStub(connector, &advertiser_Stub{connector, impl})
 }
 
-var (
-	interfaceName_Advertiser                 = "Advertiser"
-	interfaceFullIdentifier_Advertiser       = "discovery.Advertiser"
-	interfaceMethodName_Advertiser_Advertise = "Advertise"
-	interfaceMethodName_Advertiser_Stop      = "Stop"
-)
-
-func discovery_Advertiser__() mojom_types.MojomInterface {
-	responseParamsMap := make(map[string]*mojom_types.MojomStruct)
-	_ = responseParamsMap // To avoid the declared but unused compiler error
-	mstruct_Advertise := discovery_Advertiser_Advertise_ResponseParams__()
-	responseParamsMap[interfaceMethodName_Advertiser_Advertise] = &mstruct_Advertise
-	mstruct_Stop := discovery_Advertiser_Stop_ResponseParams__()
-	responseParamsMap[interfaceMethodName_Advertiser_Stop] = &mstruct_Stop
-	return mojom_types.MojomInterface{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &interfaceName_Advertiser,
-			FullIdentifier: &interfaceFullIdentifier_Advertiser,
-		},
-		Methods: map[uint32]mojom_types.MojomMethod{advertiser_Advertise_Name: mojom_types.MojomMethod{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &interfaceMethodName_Advertiser_Advertise,
-			},
-			Parameters:     discovery_Advertiser_Advertise_Params__(),
-			ResponseParams: responseParamsMap[interfaceMethodName_Advertiser_Advertise],
-		}, advertiser_Stop_Name: mojom_types.MojomMethod{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &interfaceMethodName_Advertiser_Stop,
-			},
-			Parameters:     discovery_Advertiser_Stop_Params__(),
-			ResponseParams: responseParamsMap[interfaceMethodName_Advertiser_Stop],
-		}},
-	}
-}
-
 func (f *Advertiser_Request) ServiceDescription() service_describer.ServiceDescription {
 	return &Advertiser_ServiceDescription{}
 }
@@ -779,19 +522,18 @@
 type Advertiser_ServiceDescription struct{}
 
 func (sd *Advertiser_ServiceDescription) GetTopLevelInterface() (outMojomInterface mojom_types.MojomInterface, err error) {
-	return discovery_Advertiser__(), nil
+	err = fmt.Errorf("GetTopLevelInterface not implemented")
+	return
 }
 
 func (sd *Advertiser_ServiceDescription) GetTypeDefinition(inTypeKey string) (outType mojom_types.UserDefinedType, err error) {
-	if udt, ok := GetAllMojomTypeDefinitions()[inTypeKey]; ok {
-		return udt, nil
-	}
-	return nil, fmt.Errorf("%s_ServiceDescription does not recognize %s", "Advertiser", inTypeKey)
+	err = fmt.Errorf("GetTypeDefinition not implemented")
+	return
 }
 
 func (sd *Advertiser_ServiceDescription) GetAllTypeDefinitions() (outDefinitions *map[string]mojom_types.UserDefinedType, err error) {
-	o := GetAllMojomTypeDefinitions()
-	return &o, nil
+	err = fmt.Errorf("GetAllTypeDefinitions not implemented")
+	return
 }
 
 var _ service_describer.ServiceDescription = (*Advertiser_ServiceDescription)(nil)
@@ -1001,36 +743,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_ScannerScanParams                    = "ScannerScanParams"
-	structFullIdentifier_ScannerScanParams          = "discovery.ScannerScanParams"
-	structFieldName_ScannerScanParams_InQuery       = "InQuery"
-	structFieldName_ScannerScanParams_InScanHandler = "InScanHandler"
-)
-
-func discovery_Scanner_Scan_Params__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_ScannerScanParams,
-			FullIdentifier: &structFullIdentifier_ScannerScanParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_ScannerScanParams_InQuery,
-			},
-			Type: &mojom_types.TypeStringType{mojom_types.StringType{false}},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_ScannerScanParams_InScanHandler,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Identifier: &ID_discovery_ScanHandler__,
-					TypeKey: &ID_discovery_ScanHandler__},
-			},
-		}},
-	}
-}
-
 type scanner_Scan_ResponseParams struct {
 	outHandle uint32
 	outErr    *Error
@@ -1107,36 +819,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_ScannerScanResponseParams                = "ScannerScanResponseParams"
-	structFullIdentifier_ScannerScanResponseParams      = "discovery.ScannerScanResponseParams"
-	structFieldName_ScannerScanResponseParams_OutHandle = "OutHandle"
-	structFieldName_ScannerScanResponseParams_OutErr    = "OutErr"
-)
-
-func discovery_Scanner_Scan_ResponseParams__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_ScannerScanResponseParams,
-			FullIdentifier: &structFullIdentifier_ScannerScanResponseParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_ScannerScanResponseParams_OutHandle,
-			},
-			Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_UinT32},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_ScannerScanResponseParams_OutErr,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Nullable: true, Identifier: &ID_discovery_Error__,
-					TypeKey: &ID_discovery_Error__},
-			},
-		}},
-	}
-}
-
 func (p *Scanner_Proxy) Scan(inQuery string, inScanHandler ScanHandler_Pointer) (outHandle uint32, outErr *Error, err error) {
 	payload := &scanner_Scan_Params{
 		inQuery,
@@ -1231,27 +913,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_ScannerStopParams           = "ScannerStopParams"
-	structFullIdentifier_ScannerStopParams = "discovery.ScannerStopParams"
-	structFieldName_ScannerStopParams_InH  = "InH"
-)
-
-func discovery_Scanner_Stop_Params__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_ScannerStopParams,
-			FullIdentifier: &structFullIdentifier_ScannerStopParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_ScannerStopParams_InH,
-			},
-			Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_UinT32},
-		}},
-	}
-}
-
 type scanner_Stop_ResponseParams struct {
 	outErr *Error
 }
@@ -1317,30 +978,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_ScannerStopResponseParams             = "ScannerStopResponseParams"
-	structFullIdentifier_ScannerStopResponseParams   = "discovery.ScannerStopResponseParams"
-	structFieldName_ScannerStopResponseParams_OutErr = "OutErr"
-)
-
-func discovery_Scanner_Stop_ResponseParams__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_ScannerStopResponseParams,
-			FullIdentifier: &structFullIdentifier_ScannerStopResponseParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_ScannerStopResponseParams_OutErr,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Nullable: true, Identifier: &ID_discovery_Error__,
-					TypeKey: &ID_discovery_Error__},
-			},
-		}},
-	}
-}
-
 func (p *Scanner_Proxy) Stop(inH uint32) (outErr *Error, err error) {
 	payload := &scanner_Stop_Params{
 		inH,
@@ -1392,41 +1029,6 @@
 	return bindings.NewStub(connector, &scanner_Stub{connector, impl})
 }
 
-var (
-	interfaceName_Scanner            = "Scanner"
-	interfaceFullIdentifier_Scanner  = "discovery.Scanner"
-	interfaceMethodName_Scanner_Scan = "Scan"
-	interfaceMethodName_Scanner_Stop = "Stop"
-)
-
-func discovery_Scanner__() mojom_types.MojomInterface {
-	responseParamsMap := make(map[string]*mojom_types.MojomStruct)
-	_ = responseParamsMap // To avoid the declared but unused compiler error
-	mstruct_Scan := discovery_Scanner_Scan_ResponseParams__()
-	responseParamsMap[interfaceMethodName_Scanner_Scan] = &mstruct_Scan
-	mstruct_Stop := discovery_Scanner_Stop_ResponseParams__()
-	responseParamsMap[interfaceMethodName_Scanner_Stop] = &mstruct_Stop
-	return mojom_types.MojomInterface{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &interfaceName_Scanner,
-			FullIdentifier: &interfaceFullIdentifier_Scanner,
-		},
-		Methods: map[uint32]mojom_types.MojomMethod{scanner_Scan_Name: mojom_types.MojomMethod{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &interfaceMethodName_Scanner_Scan,
-			},
-			Parameters:     discovery_Scanner_Scan_Params__(),
-			ResponseParams: responseParamsMap[interfaceMethodName_Scanner_Scan],
-		}, scanner_Stop_Name: mojom_types.MojomMethod{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &interfaceMethodName_Scanner_Stop,
-			},
-			Parameters:     discovery_Scanner_Stop_Params__(),
-			ResponseParams: responseParamsMap[interfaceMethodName_Scanner_Stop],
-		}},
-	}
-}
-
 func (f *Scanner_Request) ServiceDescription() service_describer.ServiceDescription {
 	return &Scanner_ServiceDescription{}
 }
@@ -1434,19 +1036,18 @@
 type Scanner_ServiceDescription struct{}
 
 func (sd *Scanner_ServiceDescription) GetTopLevelInterface() (outMojomInterface mojom_types.MojomInterface, err error) {
-	return discovery_Scanner__(), nil
+	err = fmt.Errorf("GetTopLevelInterface not implemented")
+	return
 }
 
 func (sd *Scanner_ServiceDescription) GetTypeDefinition(inTypeKey string) (outType mojom_types.UserDefinedType, err error) {
-	if udt, ok := GetAllMojomTypeDefinitions()[inTypeKey]; ok {
-		return udt, nil
-	}
-	return nil, fmt.Errorf("%s_ServiceDescription does not recognize %s", "Scanner", inTypeKey)
+	err = fmt.Errorf("GetTypeDefinition not implemented")
+	return
 }
 
 func (sd *Scanner_ServiceDescription) GetAllTypeDefinitions() (outDefinitions *map[string]mojom_types.UserDefinedType, err error) {
-	o := GetAllMojomTypeDefinitions()
-	return &o, nil
+	err = fmt.Errorf("GetAllTypeDefinitions not implemented")
+	return
 }
 
 var _ service_describer.ServiceDescription = (*Scanner_ServiceDescription)(nil)
@@ -1636,30 +1237,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_ScanHandlerUpdateParams               = "ScanHandlerUpdateParams"
-	structFullIdentifier_ScanHandlerUpdateParams     = "discovery.ScanHandlerUpdateParams"
-	structFieldName_ScanHandlerUpdateParams_InUpdate = "InUpdate"
-)
-
-func discovery_ScanHandler_Update_Params__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_ScanHandlerUpdateParams,
-			FullIdentifier: &structFullIdentifier_ScanHandlerUpdateParams,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_ScanHandlerUpdateParams_InUpdate,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Identifier: &ID_discovery_Update__,
-					TypeKey: &ID_discovery_Update__},
-			},
-		}},
-	}
-}
-
 func (p *ScanHandler_Proxy) Update(inUpdate Update) (err error) {
 	payload := &scanHandler_Update_Params{
 		inUpdate,
@@ -1691,30 +1268,6 @@
 	return bindings.NewStub(connector, &scanHandler_Stub{connector, impl})
 }
 
-var (
-	interfaceName_ScanHandler              = "ScanHandler"
-	interfaceFullIdentifier_ScanHandler    = "discovery.ScanHandler"
-	interfaceMethodName_ScanHandler_Update = "Update"
-)
-
-func discovery_ScanHandler__() mojom_types.MojomInterface {
-	responseParamsMap := make(map[string]*mojom_types.MojomStruct)
-	_ = responseParamsMap // To avoid the declared but unused compiler error
-	return mojom_types.MojomInterface{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &interfaceName_ScanHandler,
-			FullIdentifier: &interfaceFullIdentifier_ScanHandler,
-		},
-		Methods: map[uint32]mojom_types.MojomMethod{scanHandler_Update_Name: mojom_types.MojomMethod{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &interfaceMethodName_ScanHandler_Update,
-			},
-			Parameters:     discovery_ScanHandler_Update_Params__(),
-			ResponseParams: responseParamsMap[interfaceMethodName_ScanHandler_Update],
-		}},
-	}
-}
-
 func (f *ScanHandler_Request) ServiceDescription() service_describer.ServiceDescription {
 	return &ScanHandler_ServiceDescription{}
 }
@@ -1722,19 +1275,18 @@
 type ScanHandler_ServiceDescription struct{}
 
 func (sd *ScanHandler_ServiceDescription) GetTopLevelInterface() (outMojomInterface mojom_types.MojomInterface, err error) {
-	return discovery_ScanHandler__(), nil
+	err = fmt.Errorf("GetTopLevelInterface not implemented")
+	return
 }
 
 func (sd *ScanHandler_ServiceDescription) GetTypeDefinition(inTypeKey string) (outType mojom_types.UserDefinedType, err error) {
-	if udt, ok := GetAllMojomTypeDefinitions()[inTypeKey]; ok {
-		return udt, nil
-	}
-	return nil, fmt.Errorf("%s_ServiceDescription does not recognize %s", "ScanHandler", inTypeKey)
+	err = fmt.Errorf("GetTypeDefinition not implemented")
+	return
 }
 
 func (sd *ScanHandler_ServiceDescription) GetAllTypeDefinitions() (outDefinitions *map[string]mojom_types.UserDefinedType, err error) {
-	o := GetAllMojomTypeDefinitions()
-	return &o, nil
+	err = fmt.Errorf("GetAllTypeDefinitions not implemented")
+	return
 }
 
 var _ service_describer.ServiceDescription = (*ScanHandler_ServiceDescription)(nil)
@@ -2075,57 +1627,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_Service                    = "Service"
-	structFullIdentifier_Service          = "discovery.Service"
-	structFieldName_Service_InstanceId    = "InstanceId"
-	structFieldName_Service_InstanceName  = "InstanceName"
-	structFieldName_Service_InterfaceName = "InterfaceName"
-	structFieldName_Service_Attrs         = "Attrs"
-	structFieldName_Service_Addrs         = "Addrs"
-)
-
-func discovery_Service__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_Service,
-			FullIdentifier: &structFullIdentifier_Service,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Service_InstanceId,
-			},
-			Type: &mojom_types.TypeStringType{mojom_types.StringType{true}},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Service_InstanceName,
-			},
-			Type: &mojom_types.TypeStringType{mojom_types.StringType{true}},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Service_InterfaceName,
-			},
-			Type: &mojom_types.TypeStringType{mojom_types.StringType{false}},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Service_Attrs,
-			},
-			Type: &mojom_types.TypeMapType{
-				Value: mojom_types.MapType{Nullable: true, KeyType: &mojom_types.TypeStringType{mojom_types.StringType{false}},
-					ValueType: &mojom_types.TypeStringType{mojom_types.StringType{false}},
-				},
-			},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Service_Addrs,
-			},
-			Type: &mojom_types.TypeArrayType{
-				Value: mojom_types.ArrayType{ElementType: &mojom_types.TypeStringType{mojom_types.StringType{false}}},
-			},
-		}},
-	}
-}
-
 type Update struct {
 	Service    Service
 	UpdateType UpdateType
@@ -2197,39 +1698,6 @@
 	return nil
 }
 
-// String names and labels used by the MojomStruct types.
-var (
-	structName_Update                 = "Update"
-	structFullIdentifier_Update       = "discovery.Update"
-	structFieldName_Update_Service    = "Service"
-	structFieldName_Update_UpdateType = "UpdateType"
-)
-
-func discovery_Update__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_Update,
-			FullIdentifier: &structFullIdentifier_Update,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Update_Service,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Identifier: &ID_discovery_Service__,
-					TypeKey: &ID_discovery_Service__},
-			},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Update_UpdateType,
-			},
-			Type: &mojom_types.TypeTypeReference{
-				Value: mojom_types.TypeReference{Identifier: &ID_discovery_UpdateType__,
-					TypeKey: &ID_discovery_UpdateType__},
-			},
-		}},
-	}
-}
-
 type Error struct {
 	Id     string
 	Action int32
@@ -2324,36 +1792,3 @@
 	}
 	return nil
 }
-
-// String names and labels used by the MojomStruct types.
-var (
-	structName_Error             = "Error"
-	structFullIdentifier_Error   = "discovery.Error"
-	structFieldName_Error_Id     = "Id"
-	structFieldName_Error_Action = "Action"
-	structFieldName_Error_Msg    = "Msg"
-)
-
-func discovery_Error__() mojom_types.MojomStruct {
-	return mojom_types.MojomStruct{
-		DeclData: &mojom_types.DeclarationData{
-			ShortName:      &structName_Error,
-			FullIdentifier: &structFullIdentifier_Error,
-		}, Fields: []mojom_types.StructField{mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Error_Id,
-			},
-			Type: &mojom_types.TypeStringType{mojom_types.StringType{false}},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Error_Action,
-			},
-			Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_InT32},
-		}, mojom_types.StructField{
-			DeclData: &mojom_types.DeclarationData{
-				ShortName: &structFieldName_Error_Msg,
-			},
-			Type: &mojom_types.TypeStringType{mojom_types.StringType{false}},
-		}},
-	}
-}
diff --git a/java/generated-src/io/v/mojo/discovery/ScanHandler.java b/java/generated-src/io/v/mojo/discovery/ScanHandler.java
index 08885bf..25cddab 100644
--- a/java/generated-src/io/v/mojo/discovery/ScanHandler.java
+++ b/java/generated-src/io/v/mojo/discovery/ScanHandler.java
@@ -21,6 +21,8 @@
 
     NamedManager<ScanHandler, ScanHandler.Proxy> MANAGER = ScanHandler_Internal.MANAGER;
 
-    void update(Update update);
+    void found(Service service);
+
+    void lost(String instanceId);
 }
 
diff --git a/java/generated-src/io/v/mojo/discovery/ScanHandler_Internal.java b/java/generated-src/io/v/mojo/discovery/ScanHandler_Internal.java
index 477d0e7..d649ea2 100644
--- a/java/generated-src/io/v/mojo/discovery/ScanHandler_Internal.java
+++ b/java/generated-src/io/v/mojo/discovery/ScanHandler_Internal.java
@@ -41,7 +41,8 @@
         }
     };
 
-    private static final int UPDATE_ORDINAL = 0;
+    private static final int FOUND_ORDINAL = 0;
+    private static final int LOST_ORDINAL = 1;
 
     static final class Proxy extends org.chromium.mojo.bindings.Interface.AbstractProxy implements ScanHandler.Proxy {
 
@@ -51,13 +52,23 @@
         }
 
         @Override
-        public void update(Update update) {
-            ScanHandlerUpdateParams _message = new ScanHandlerUpdateParams();
-            _message.update = update;
+        public void found(Service service) {
+            ScanHandlerFoundParams _message = new ScanHandlerFoundParams();
+            _message.service = service;
             getProxyHandler().getMessageReceiver().accept(
                     _message.serializeWithHeader(
                             getProxyHandler().getCore(),
-                            new org.chromium.mojo.bindings.MessageHeader(UPDATE_ORDINAL)));
+                            new org.chromium.mojo.bindings.MessageHeader(FOUND_ORDINAL)));
+        }
+
+        @Override
+        public void lost(String instanceId) {
+            ScanHandlerLostParams _message = new ScanHandlerLostParams();
+            _message.instanceId = instanceId;
+            getProxyHandler().getMessageReceiver().accept(
+                    _message.serializeWithHeader(
+                            getProxyHandler().getCore(),
+                            new org.chromium.mojo.bindings.MessageHeader(LOST_ORDINAL)));
         }
 
     }
@@ -81,10 +92,16 @@
                     case org.chromium.mojo.bindings.InterfaceControlMessagesConstants.RUN_OR_CLOSE_PIPE_MESSAGE_ID:
                         return org.chromium.mojo.bindings.InterfaceControlMessagesHelper.handleRunOrClosePipe(
                                 ScanHandler_Internal.MANAGER, messageWithHeader);
-                    case UPDATE_ORDINAL: {
-                        ScanHandlerUpdateParams data =
-                                ScanHandlerUpdateParams.deserialize(messageWithHeader.getPayload());
-                        getImpl().update(data.update);
+                    case FOUND_ORDINAL: {
+                        ScanHandlerFoundParams data =
+                                ScanHandlerFoundParams.deserialize(messageWithHeader.getPayload());
+                        getImpl().found(data.service);
+                        return true;
+                    }
+                    case LOST_ORDINAL: {
+                        ScanHandlerLostParams data =
+                                ScanHandlerLostParams.deserialize(messageWithHeader.getPayload());
+                        getImpl().lost(data.instanceId);
                         return true;
                     }
                     default:
@@ -119,36 +136,36 @@
         }
     }
 
-    static final class ScanHandlerUpdateParams extends org.chromium.mojo.bindings.Struct {
+    static final class ScanHandlerFoundParams extends org.chromium.mojo.bindings.Struct {
     
         private static final int STRUCT_SIZE = 16;
         private static final org.chromium.mojo.bindings.DataHeader[] VERSION_ARRAY = new org.chromium.mojo.bindings.DataHeader[] {new org.chromium.mojo.bindings.DataHeader(16, 0)};
         private static final org.chromium.mojo.bindings.DataHeader DEFAULT_STRUCT_INFO = VERSION_ARRAY[0];
     
-        public Update update;
+        public Service service;
     
-        private ScanHandlerUpdateParams(int version) {
+        private ScanHandlerFoundParams(int version) {
             super(STRUCT_SIZE, version);
         }
     
-        public ScanHandlerUpdateParams() {
+        public ScanHandlerFoundParams() {
             this(0);
         }
     
-        public static ScanHandlerUpdateParams deserialize(org.chromium.mojo.bindings.Message message) {
+        public static ScanHandlerFoundParams deserialize(org.chromium.mojo.bindings.Message message) {
             return decode(new org.chromium.mojo.bindings.Decoder(message));
         }
     
         @SuppressWarnings("unchecked")
-        public static ScanHandlerUpdateParams decode(org.chromium.mojo.bindings.Decoder decoder0) {
+        public static ScanHandlerFoundParams decode(org.chromium.mojo.bindings.Decoder decoder0) {
             if (decoder0 == null) {
                 return null;
             }
             org.chromium.mojo.bindings.DataHeader mainDataHeader = decoder0.readAndValidateDataHeader(VERSION_ARRAY);
-            ScanHandlerUpdateParams result = new ScanHandlerUpdateParams(mainDataHeader.elementsOrVersion);
+            ScanHandlerFoundParams result = new ScanHandlerFoundParams(mainDataHeader.elementsOrVersion);
             if (mainDataHeader.elementsOrVersion >= 0) {
                 org.chromium.mojo.bindings.Decoder decoder1 = decoder0.readPointer(8, false);
-                result.update = Update.decode(decoder1);
+                result.service = Service.decode(decoder1);
             }
             return result;
         }
@@ -157,7 +174,7 @@
         @Override
         protected final void encode(org.chromium.mojo.bindings.Encoder encoder) {
             org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOffset(DEFAULT_STRUCT_INFO);
-            encoder0.encode(update, 8, false);
+            encoder0.encode(service, 8, false);
         }
     
         /**
@@ -171,8 +188,8 @@
                 return false;
             if (getClass() != object.getClass())
                 return false;
-            ScanHandlerUpdateParams other = (ScanHandlerUpdateParams) object;
-            if (!org.chromium.mojo.bindings.BindingsHelper.equals(this.update, other.update))
+            ScanHandlerFoundParams other = (ScanHandlerFoundParams) object;
+            if (!org.chromium.mojo.bindings.BindingsHelper.equals(this.service, other.service))
                 return false;
             return true;
         }
@@ -184,7 +201,76 @@
         public int hashCode() {
             final int prime = 31;
             int result = prime + getClass().hashCode();
-            result = prime * result + org.chromium.mojo.bindings.BindingsHelper.hashCode(update);
+            result = prime * result + org.chromium.mojo.bindings.BindingsHelper.hashCode(service);
+            return result;
+        }
+    }
+
+    static final class ScanHandlerLostParams extends org.chromium.mojo.bindings.Struct {
+    
+        private static final int STRUCT_SIZE = 16;
+        private static final org.chromium.mojo.bindings.DataHeader[] VERSION_ARRAY = new org.chromium.mojo.bindings.DataHeader[] {new org.chromium.mojo.bindings.DataHeader(16, 0)};
+        private static final org.chromium.mojo.bindings.DataHeader DEFAULT_STRUCT_INFO = VERSION_ARRAY[0];
+    
+        public String instanceId;
+    
+        private ScanHandlerLostParams(int version) {
+            super(STRUCT_SIZE, version);
+        }
+    
+        public ScanHandlerLostParams() {
+            this(0);
+        }
+    
+        public static ScanHandlerLostParams deserialize(org.chromium.mojo.bindings.Message message) {
+            return decode(new org.chromium.mojo.bindings.Decoder(message));
+        }
+    
+        @SuppressWarnings("unchecked")
+        public static ScanHandlerLostParams decode(org.chromium.mojo.bindings.Decoder decoder0) {
+            if (decoder0 == null) {
+                return null;
+            }
+            org.chromium.mojo.bindings.DataHeader mainDataHeader = decoder0.readAndValidateDataHeader(VERSION_ARRAY);
+            ScanHandlerLostParams result = new ScanHandlerLostParams(mainDataHeader.elementsOrVersion);
+            if (mainDataHeader.elementsOrVersion >= 0) {
+                result.instanceId = decoder0.readString(8, false);
+            }
+            return result;
+        }
+    
+        @SuppressWarnings("unchecked")
+        @Override
+        protected final void encode(org.chromium.mojo.bindings.Encoder encoder) {
+            org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOffset(DEFAULT_STRUCT_INFO);
+            encoder0.encode(instanceId, 8, false);
+        }
+    
+        /**
+         * @see Object#equals(Object)
+         */
+        @Override
+        public boolean equals(Object object) {
+            if (object == this)
+                return true;
+            if (object == null)
+                return false;
+            if (getClass() != object.getClass())
+                return false;
+            ScanHandlerLostParams other = (ScanHandlerLostParams) object;
+            if (!org.chromium.mojo.bindings.BindingsHelper.equals(this.instanceId, other.instanceId))
+                return false;
+            return true;
+        }
+    
+        /**
+         * @see Object#hashCode()
+         */
+        @Override
+        public int hashCode() {
+            final int prime = 31;
+            int result = prime + getClass().hashCode();
+            result = prime * result + org.chromium.mojo.bindings.BindingsHelper.hashCode(instanceId);
             return result;
         }
     }
diff --git a/java/generated-src/mojom/vanadium/discovery.mojom.srcjar b/java/generated-src/mojom/vanadium/discovery.mojom.srcjar
index f97e92e..716ee4e 100644
--- a/java/generated-src/mojom/vanadium/discovery.mojom.srcjar
+++ b/java/generated-src/mojom/vanadium/discovery.mojom.srcjar
Binary files differ
diff --git a/lib/gen/dart-gen/mojom/lib/discovery/discovery.mojom.dart b/lib/gen/dart-gen/mojom/lib/discovery/discovery.mojom.dart
index 81d0426..4c20f51 100644
--- a/lib/gen/dart-gen/mojom/lib/discovery/discovery.mojom.dart
+++ b/lib/gen/dart-gen/mojom/lib/discovery/discovery.mojom.dart
@@ -8,9 +8,10 @@
 
 import 'package:mojo/bindings.dart' as bindings;
 import 'package:mojo/core.dart' as core;
+
 class UpdateType extends bindings.MojoEnum {
-  static const found = const UpdateType._(1);
-  static const lost = const UpdateType._(2);
+  static const UpdateType found = const UpdateType._(1);
+  static const UpdateType lost = const UpdateType._(2);
 
   const UpdateType._(int v) : super(v);
 
@@ -55,7 +56,7 @@
     }
   }
 
-  int toJson() => value;
+  int toJson() => mojoEnumValue;
 }
 
 
@@ -401,16 +402,16 @@
 }
 
 
-class AdvertiserAdvertiseParams extends bindings.Struct {
+class _AdvertiserAdvertiseParams extends bindings.Struct {
   static const List<bindings.StructDataHeader> kVersions = const [
     const bindings.StructDataHeader(24, 0)
   ];
   Service service = null;
   List<String> visibility = null;
 
-  AdvertiserAdvertiseParams() : super(kVersions.last.size);
+  _AdvertiserAdvertiseParams() : super(kVersions.last.size);
 
-  static AdvertiserAdvertiseParams deserialize(bindings.Message message) {
+  static _AdvertiserAdvertiseParams deserialize(bindings.Message message) {
     var decoder = new bindings.Decoder(message);
     var result = decode(decoder);
     if (decoder.excessHandles != null) {
@@ -419,11 +420,11 @@
     return result;
   }
 
-  static AdvertiserAdvertiseParams decode(bindings.Decoder decoder0) {
+  static _AdvertiserAdvertiseParams decode(bindings.Decoder decoder0) {
     if (decoder0 == null) {
       return null;
     }
-    AdvertiserAdvertiseParams result = new AdvertiserAdvertiseParams();
+    _AdvertiserAdvertiseParams result = new _AdvertiserAdvertiseParams();
 
     var mainDataHeader = decoder0.decodeStructDataHeader();
     if (mainDataHeader.version <= kVersions.last.version) {
@@ -482,7 +483,7 @@
   }
 
   String toString() {
-    return "AdvertiserAdvertiseParams("
+    return "_AdvertiserAdvertiseParams("
            "service: $service" ", "
            "visibility: $visibility" ")";
   }
@@ -582,15 +583,15 @@
 }
 
 
-class AdvertiserStopParams extends bindings.Struct {
+class _AdvertiserStopParams extends bindings.Struct {
   static const List<bindings.StructDataHeader> kVersions = const [
     const bindings.StructDataHeader(16, 0)
   ];
   int h = 0;
 
-  AdvertiserStopParams() : super(kVersions.last.size);
+  _AdvertiserStopParams() : super(kVersions.last.size);
 
-  static AdvertiserStopParams deserialize(bindings.Message message) {
+  static _AdvertiserStopParams deserialize(bindings.Message message) {
     var decoder = new bindings.Decoder(message);
     var result = decode(decoder);
     if (decoder.excessHandles != null) {
@@ -599,11 +600,11 @@
     return result;
   }
 
-  static AdvertiserStopParams decode(bindings.Decoder decoder0) {
+  static _AdvertiserStopParams decode(bindings.Decoder decoder0) {
     if (decoder0 == null) {
       return null;
     }
-    AdvertiserStopParams result = new AdvertiserStopParams();
+    _AdvertiserStopParams result = new _AdvertiserStopParams();
 
     var mainDataHeader = decoder0.decodeStructDataHeader();
     if (mainDataHeader.version <= kVersions.last.version) {
@@ -637,7 +638,7 @@
   }
 
   String toString() {
-    return "AdvertiserStopParams("
+    return "_AdvertiserStopParams("
            "h: $h" ")";
   }
 
@@ -717,16 +718,16 @@
 }
 
 
-class ScannerScanParams extends bindings.Struct {
+class _ScannerScanParams extends bindings.Struct {
   static const List<bindings.StructDataHeader> kVersions = const [
     const bindings.StructDataHeader(24, 0)
   ];
   String query = null;
   Object scanHandler = null;
 
-  ScannerScanParams() : super(kVersions.last.size);
+  _ScannerScanParams() : super(kVersions.last.size);
 
-  static ScannerScanParams deserialize(bindings.Message message) {
+  static _ScannerScanParams deserialize(bindings.Message message) {
     var decoder = new bindings.Decoder(message);
     var result = decode(decoder);
     if (decoder.excessHandles != null) {
@@ -735,11 +736,11 @@
     return result;
   }
 
-  static ScannerScanParams decode(bindings.Decoder decoder0) {
+  static _ScannerScanParams decode(bindings.Decoder decoder0) {
     if (decoder0 == null) {
       return null;
     }
-    ScannerScanParams result = new ScannerScanParams();
+    _ScannerScanParams result = new _ScannerScanParams();
 
     var mainDataHeader = decoder0.decodeStructDataHeader();
     if (mainDataHeader.version <= kVersions.last.version) {
@@ -779,7 +780,7 @@
   }
 
   String toString() {
-    return "ScannerScanParams("
+    return "_ScannerScanParams("
            "query: $query" ", "
            "scanHandler: $scanHandler" ")";
   }
@@ -868,15 +869,15 @@
 }
 
 
-class ScannerStopParams extends bindings.Struct {
+class _ScannerStopParams extends bindings.Struct {
   static const List<bindings.StructDataHeader> kVersions = const [
     const bindings.StructDataHeader(16, 0)
   ];
   int h = 0;
 
-  ScannerStopParams() : super(kVersions.last.size);
+  _ScannerStopParams() : super(kVersions.last.size);
 
-  static ScannerStopParams deserialize(bindings.Message message) {
+  static _ScannerStopParams deserialize(bindings.Message message) {
     var decoder = new bindings.Decoder(message);
     var result = decode(decoder);
     if (decoder.excessHandles != null) {
@@ -885,11 +886,11 @@
     return result;
   }
 
-  static ScannerStopParams decode(bindings.Decoder decoder0) {
+  static _ScannerStopParams decode(bindings.Decoder decoder0) {
     if (decoder0 == null) {
       return null;
     }
-    ScannerStopParams result = new ScannerStopParams();
+    _ScannerStopParams result = new _ScannerStopParams();
 
     var mainDataHeader = decoder0.decodeStructDataHeader();
     if (mainDataHeader.version <= kVersions.last.version) {
@@ -923,7 +924,7 @@
   }
 
   String toString() {
-    return "ScannerStopParams("
+    return "_ScannerStopParams("
            "h: $h" ")";
   }
 
@@ -1003,15 +1004,15 @@
 }
 
 
-class ScanHandlerUpdateParams extends bindings.Struct {
+class _ScanHandlerUpdateParams extends bindings.Struct {
   static const List<bindings.StructDataHeader> kVersions = const [
     const bindings.StructDataHeader(16, 0)
   ];
   Update update = null;
 
-  ScanHandlerUpdateParams() : super(kVersions.last.size);
+  _ScanHandlerUpdateParams() : super(kVersions.last.size);
 
-  static ScanHandlerUpdateParams deserialize(bindings.Message message) {
+  static _ScanHandlerUpdateParams deserialize(bindings.Message message) {
     var decoder = new bindings.Decoder(message);
     var result = decode(decoder);
     if (decoder.excessHandles != null) {
@@ -1020,11 +1021,11 @@
     return result;
   }
 
-  static ScanHandlerUpdateParams decode(bindings.Decoder decoder0) {
+  static _ScanHandlerUpdateParams decode(bindings.Decoder decoder0) {
     if (decoder0 == null) {
       return null;
     }
-    ScanHandlerUpdateParams result = new ScanHandlerUpdateParams();
+    _ScanHandlerUpdateParams result = new _ScanHandlerUpdateParams();
 
     var mainDataHeader = decoder0.decodeStructDataHeader();
     if (mainDataHeader.version <= kVersions.last.version) {
@@ -1059,7 +1060,7 @@
   }
 
   String toString() {
-    return "ScanHandlerUpdateParams("
+    return "_ScanHandlerUpdateParams("
            "update: $update" ")";
   }
 
@@ -1070,37 +1071,34 @@
   }
 }
 
-const int kAdvertiser_advertise_name = 0;
-const int kAdvertiser_stop_name = 1;
-const String AdvertiserName = "v23::discovery::Advertiser";
+const int _Advertiser_advertiseName = 0;
+const int _Advertiser_stopName = 1;
 
 abstract class Advertiser {
+  static const String serviceName = "v23::discovery::Advertiser";
   dynamic advertise(Service service,List<String> visibility,[Function responseFactory = null]);
   dynamic stop(int h,[Function responseFactory = null]);
-
 }
 
 
-class AdvertiserProxyImpl extends bindings.Proxy {
-  AdvertiserProxyImpl.fromEndpoint(
+class _AdvertiserProxyImpl extends bindings.Proxy {
+  _AdvertiserProxyImpl.fromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
 
-  AdvertiserProxyImpl.fromHandle(core.MojoHandle handle) :
+  _AdvertiserProxyImpl.fromHandle(core.MojoHandle handle) :
       super.fromHandle(handle);
 
-  AdvertiserProxyImpl.unbound() : super.unbound();
+  _AdvertiserProxyImpl.unbound() : super.unbound();
 
-  static AdvertiserProxyImpl newFromEndpoint(
+  static _AdvertiserProxyImpl newFromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) {
-    assert(endpoint.setDescription("For AdvertiserProxyImpl"));
-    return new AdvertiserProxyImpl.fromEndpoint(endpoint);
+    assert(endpoint.setDescription("For _AdvertiserProxyImpl"));
+    return new _AdvertiserProxyImpl.fromEndpoint(endpoint);
   }
 
-  String get name => AdvertiserName;
-
   void handleResponse(bindings.ServiceMessage message) {
     switch (message.header.type) {
-      case kAdvertiser_advertise_name:
+      case _Advertiser_advertiseName:
         var r = AdvertiserAdvertiseResponseParams.deserialize(
             message.payload);
         if (!message.header.hasRequestId) {
@@ -1120,7 +1118,7 @@
         }
         c.complete(r);
         break;
-      case kAdvertiser_stop_name:
+      case _Advertiser_stopName:
         var r = AdvertiserStopResponseParams.deserialize(
             message.payload);
         if (!message.header.hasRequestId) {
@@ -1149,31 +1147,31 @@
 
   String toString() {
     var superString = super.toString();
-    return "AdvertiserProxyImpl($superString)";
+    return "_AdvertiserProxyImpl($superString)";
   }
 }
 
 
 class _AdvertiserProxyCalls implements Advertiser {
-  AdvertiserProxyImpl _proxyImpl;
+  _AdvertiserProxyImpl _proxyImpl;
 
   _AdvertiserProxyCalls(this._proxyImpl);
     dynamic advertise(Service service,List<String> visibility,[Function responseFactory = null]) {
-      var params = new AdvertiserAdvertiseParams();
+      var params = new _AdvertiserAdvertiseParams();
       params.service = service;
       params.visibility = visibility;
       return _proxyImpl.sendMessageWithRequestId(
           params,
-          kAdvertiser_advertise_name,
+          _Advertiser_advertiseName,
           -1,
           bindings.MessageHeader.kMessageExpectsResponse);
     }
     dynamic stop(int h,[Function responseFactory = null]) {
-      var params = new AdvertiserStopParams();
+      var params = new _AdvertiserStopParams();
       params.h = h;
       return _proxyImpl.sendMessageWithRequestId(
           params,
-          kAdvertiser_stop_name,
+          _Advertiser_stopName,
           -1,
           bindings.MessageHeader.kMessageExpectsResponse);
     }
@@ -1183,25 +1181,24 @@
 class AdvertiserProxy implements bindings.ProxyBase {
   final bindings.Proxy impl;
   Advertiser ptr;
-  final String name = AdvertiserName;
 
-  AdvertiserProxy(AdvertiserProxyImpl proxyImpl) :
+  AdvertiserProxy(_AdvertiserProxyImpl proxyImpl) :
       impl = proxyImpl,
       ptr = new _AdvertiserProxyCalls(proxyImpl);
 
   AdvertiserProxy.fromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) :
-      impl = new AdvertiserProxyImpl.fromEndpoint(endpoint) {
+      impl = new _AdvertiserProxyImpl.fromEndpoint(endpoint) {
     ptr = new _AdvertiserProxyCalls(impl);
   }
 
   AdvertiserProxy.fromHandle(core.MojoHandle handle) :
-      impl = new AdvertiserProxyImpl.fromHandle(handle) {
+      impl = new _AdvertiserProxyImpl.fromHandle(handle) {
     ptr = new _AdvertiserProxyCalls(impl);
   }
 
   AdvertiserProxy.unbound() :
-      impl = new AdvertiserProxyImpl.unbound() {
+      impl = new _AdvertiserProxyImpl.unbound() {
     ptr = new _AdvertiserProxyCalls(impl);
   }
 
@@ -1218,6 +1215,8 @@
     return new AdvertiserProxy.fromEndpoint(endpoint);
   }
 
+  String get serviceName => Advertiser.serviceName;
+
   Future close({bool immediate: false}) => impl.close(immediate: immediate);
 
   Future responseOrError(Future f) => impl.responseOrError(f);
@@ -1256,8 +1255,6 @@
     return new AdvertiserStub.fromEndpoint(endpoint);
   }
 
-  static const String name = AdvertiserName;
-
 
   AdvertiserAdvertiseResponseParams _AdvertiserAdvertiseResponseParamsFactory(int handle, String instanceId, Error err) {
     var mojo_factory_result = new AdvertiserAdvertiseResponseParams();
@@ -1280,8 +1277,8 @@
     }
     assert(_impl != null);
     switch (message.header.type) {
-      case kAdvertiser_advertise_name:
-        var params = AdvertiserAdvertiseParams.deserialize(
+      case _Advertiser_advertiseName:
+        var params = _AdvertiserAdvertiseParams.deserialize(
             message.payload);
         var response = _impl.advertise(params.service,params.visibility,_AdvertiserAdvertiseResponseParamsFactory);
         if (response is Future) {
@@ -1289,7 +1286,7 @@
             if (response != null) {
               return buildResponseWithId(
                   response,
-                  kAdvertiser_advertise_name,
+                  _Advertiser_advertiseName,
                   message.header.requestId,
                   bindings.MessageHeader.kMessageIsResponse);
             }
@@ -1297,13 +1294,13 @@
         } else if (response != null) {
           return buildResponseWithId(
               response,
-              kAdvertiser_advertise_name,
+              _Advertiser_advertiseName,
               message.header.requestId,
               bindings.MessageHeader.kMessageIsResponse);
         }
         break;
-      case kAdvertiser_stop_name:
-        var params = AdvertiserStopParams.deserialize(
+      case _Advertiser_stopName:
+        var params = _AdvertiserStopParams.deserialize(
             message.payload);
         var response = _impl.stop(params.h,_AdvertiserStopResponseParamsFactory);
         if (response is Future) {
@@ -1311,7 +1308,7 @@
             if (response != null) {
               return buildResponseWithId(
                   response,
-                  kAdvertiser_stop_name,
+                  _Advertiser_stopName,
                   message.header.requestId,
                   bindings.MessageHeader.kMessageIsResponse);
             }
@@ -1319,7 +1316,7 @@
         } else if (response != null) {
           return buildResponseWithId(
               response,
-              kAdvertiser_stop_name,
+              _Advertiser_stopName,
               message.header.requestId,
               bindings.MessageHeader.kMessageIsResponse);
         }
@@ -1345,37 +1342,34 @@
   int get version => 0;
 }
 
-const int kScanner_scan_name = 0;
-const int kScanner_stop_name = 1;
-const String ScannerName = "v23::discovery::Scanner";
+const int _Scanner_scanName = 0;
+const int _Scanner_stopName = 1;
 
 abstract class Scanner {
+  static const String serviceName = "v23::discovery::Scanner";
   dynamic scan(String query,Object scanHandler,[Function responseFactory = null]);
   dynamic stop(int h,[Function responseFactory = null]);
-
 }
 
 
-class ScannerProxyImpl extends bindings.Proxy {
-  ScannerProxyImpl.fromEndpoint(
+class _ScannerProxyImpl extends bindings.Proxy {
+  _ScannerProxyImpl.fromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
 
-  ScannerProxyImpl.fromHandle(core.MojoHandle handle) :
+  _ScannerProxyImpl.fromHandle(core.MojoHandle handle) :
       super.fromHandle(handle);
 
-  ScannerProxyImpl.unbound() : super.unbound();
+  _ScannerProxyImpl.unbound() : super.unbound();
 
-  static ScannerProxyImpl newFromEndpoint(
+  static _ScannerProxyImpl newFromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) {
-    assert(endpoint.setDescription("For ScannerProxyImpl"));
-    return new ScannerProxyImpl.fromEndpoint(endpoint);
+    assert(endpoint.setDescription("For _ScannerProxyImpl"));
+    return new _ScannerProxyImpl.fromEndpoint(endpoint);
   }
 
-  String get name => ScannerName;
-
   void handleResponse(bindings.ServiceMessage message) {
     switch (message.header.type) {
-      case kScanner_scan_name:
+      case _Scanner_scanName:
         var r = ScannerScanResponseParams.deserialize(
             message.payload);
         if (!message.header.hasRequestId) {
@@ -1395,7 +1389,7 @@
         }
         c.complete(r);
         break;
-      case kScanner_stop_name:
+      case _Scanner_stopName:
         var r = ScannerStopResponseParams.deserialize(
             message.payload);
         if (!message.header.hasRequestId) {
@@ -1424,31 +1418,31 @@
 
   String toString() {
     var superString = super.toString();
-    return "ScannerProxyImpl($superString)";
+    return "_ScannerProxyImpl($superString)";
   }
 }
 
 
 class _ScannerProxyCalls implements Scanner {
-  ScannerProxyImpl _proxyImpl;
+  _ScannerProxyImpl _proxyImpl;
 
   _ScannerProxyCalls(this._proxyImpl);
     dynamic scan(String query,Object scanHandler,[Function responseFactory = null]) {
-      var params = new ScannerScanParams();
+      var params = new _ScannerScanParams();
       params.query = query;
       params.scanHandler = scanHandler;
       return _proxyImpl.sendMessageWithRequestId(
           params,
-          kScanner_scan_name,
+          _Scanner_scanName,
           -1,
           bindings.MessageHeader.kMessageExpectsResponse);
     }
     dynamic stop(int h,[Function responseFactory = null]) {
-      var params = new ScannerStopParams();
+      var params = new _ScannerStopParams();
       params.h = h;
       return _proxyImpl.sendMessageWithRequestId(
           params,
-          kScanner_stop_name,
+          _Scanner_stopName,
           -1,
           bindings.MessageHeader.kMessageExpectsResponse);
     }
@@ -1458,25 +1452,24 @@
 class ScannerProxy implements bindings.ProxyBase {
   final bindings.Proxy impl;
   Scanner ptr;
-  final String name = ScannerName;
 
-  ScannerProxy(ScannerProxyImpl proxyImpl) :
+  ScannerProxy(_ScannerProxyImpl proxyImpl) :
       impl = proxyImpl,
       ptr = new _ScannerProxyCalls(proxyImpl);
 
   ScannerProxy.fromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) :
-      impl = new ScannerProxyImpl.fromEndpoint(endpoint) {
+      impl = new _ScannerProxyImpl.fromEndpoint(endpoint) {
     ptr = new _ScannerProxyCalls(impl);
   }
 
   ScannerProxy.fromHandle(core.MojoHandle handle) :
-      impl = new ScannerProxyImpl.fromHandle(handle) {
+      impl = new _ScannerProxyImpl.fromHandle(handle) {
     ptr = new _ScannerProxyCalls(impl);
   }
 
   ScannerProxy.unbound() :
-      impl = new ScannerProxyImpl.unbound() {
+      impl = new _ScannerProxyImpl.unbound() {
     ptr = new _ScannerProxyCalls(impl);
   }
 
@@ -1493,6 +1486,8 @@
     return new ScannerProxy.fromEndpoint(endpoint);
   }
 
+  String get serviceName => Scanner.serviceName;
+
   Future close({bool immediate: false}) => impl.close(immediate: immediate);
 
   Future responseOrError(Future f) => impl.responseOrError(f);
@@ -1531,8 +1526,6 @@
     return new ScannerStub.fromEndpoint(endpoint);
   }
 
-  static const String name = ScannerName;
-
 
   ScannerScanResponseParams _ScannerScanResponseParamsFactory(int handle, Error err) {
     var mojo_factory_result = new ScannerScanResponseParams();
@@ -1554,8 +1547,8 @@
     }
     assert(_impl != null);
     switch (message.header.type) {
-      case kScanner_scan_name:
-        var params = ScannerScanParams.deserialize(
+      case _Scanner_scanName:
+        var params = _ScannerScanParams.deserialize(
             message.payload);
         var response = _impl.scan(params.query,params.scanHandler,_ScannerScanResponseParamsFactory);
         if (response is Future) {
@@ -1563,7 +1556,7 @@
             if (response != null) {
               return buildResponseWithId(
                   response,
-                  kScanner_scan_name,
+                  _Scanner_scanName,
                   message.header.requestId,
                   bindings.MessageHeader.kMessageIsResponse);
             }
@@ -1571,13 +1564,13 @@
         } else if (response != null) {
           return buildResponseWithId(
               response,
-              kScanner_scan_name,
+              _Scanner_scanName,
               message.header.requestId,
               bindings.MessageHeader.kMessageIsResponse);
         }
         break;
-      case kScanner_stop_name:
-        var params = ScannerStopParams.deserialize(
+      case _Scanner_stopName:
+        var params = _ScannerStopParams.deserialize(
             message.payload);
         var response = _impl.stop(params.h,_ScannerStopResponseParamsFactory);
         if (response is Future) {
@@ -1585,7 +1578,7 @@
             if (response != null) {
               return buildResponseWithId(
                   response,
-                  kScanner_stop_name,
+                  _Scanner_stopName,
                   message.header.requestId,
                   bindings.MessageHeader.kMessageIsResponse);
             }
@@ -1593,7 +1586,7 @@
         } else if (response != null) {
           return buildResponseWithId(
               response,
-              kScanner_stop_name,
+              _Scanner_stopName,
               message.header.requestId,
               bindings.MessageHeader.kMessageIsResponse);
         }
@@ -1619,32 +1612,29 @@
   int get version => 0;
 }
 
-const int kScanHandler_update_name = 0;
-const String ScanHandlerName = "v23::discovery::ScanHandler";
+const int _ScanHandler_updateName = 0;
 
 abstract class ScanHandler {
+  static const String serviceName = "v23::discovery::ScanHandler";
   void update(Update update);
-
 }
 
 
-class ScanHandlerProxyImpl extends bindings.Proxy {
-  ScanHandlerProxyImpl.fromEndpoint(
+class _ScanHandlerProxyImpl extends bindings.Proxy {
+  _ScanHandlerProxyImpl.fromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
 
-  ScanHandlerProxyImpl.fromHandle(core.MojoHandle handle) :
+  _ScanHandlerProxyImpl.fromHandle(core.MojoHandle handle) :
       super.fromHandle(handle);
 
-  ScanHandlerProxyImpl.unbound() : super.unbound();
+  _ScanHandlerProxyImpl.unbound() : super.unbound();
 
-  static ScanHandlerProxyImpl newFromEndpoint(
+  static _ScanHandlerProxyImpl newFromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) {
-    assert(endpoint.setDescription("For ScanHandlerProxyImpl"));
-    return new ScanHandlerProxyImpl.fromEndpoint(endpoint);
+    assert(endpoint.setDescription("For _ScanHandlerProxyImpl"));
+    return new _ScanHandlerProxyImpl.fromEndpoint(endpoint);
   }
 
-  String get name => ScanHandlerName;
-
   void handleResponse(bindings.ServiceMessage message) {
     switch (message.header.type) {
       default:
@@ -1656,13 +1646,13 @@
 
   String toString() {
     var superString = super.toString();
-    return "ScanHandlerProxyImpl($superString)";
+    return "_ScanHandlerProxyImpl($superString)";
   }
 }
 
 
 class _ScanHandlerProxyCalls implements ScanHandler {
-  ScanHandlerProxyImpl _proxyImpl;
+  _ScanHandlerProxyImpl _proxyImpl;
 
   _ScanHandlerProxyCalls(this._proxyImpl);
     void update(Update update) {
@@ -1670,36 +1660,34 @@
         _proxyImpl.proxyError("The Proxy is closed.");
         return;
       }
-      var params = new ScanHandlerUpdateParams();
+      var params = new _ScanHandlerUpdateParams();
       params.update = update;
-      _proxyImpl.sendMessage(params, kScanHandler_update_name);
+      _proxyImpl.sendMessage(params, _ScanHandler_updateName);
     }
-  
 }
 
 
 class ScanHandlerProxy implements bindings.ProxyBase {
   final bindings.Proxy impl;
   ScanHandler ptr;
-  final String name = ScanHandlerName;
 
-  ScanHandlerProxy(ScanHandlerProxyImpl proxyImpl) :
+  ScanHandlerProxy(_ScanHandlerProxyImpl proxyImpl) :
       impl = proxyImpl,
       ptr = new _ScanHandlerProxyCalls(proxyImpl);
 
   ScanHandlerProxy.fromEndpoint(
       core.MojoMessagePipeEndpoint endpoint) :
-      impl = new ScanHandlerProxyImpl.fromEndpoint(endpoint) {
+      impl = new _ScanHandlerProxyImpl.fromEndpoint(endpoint) {
     ptr = new _ScanHandlerProxyCalls(impl);
   }
 
   ScanHandlerProxy.fromHandle(core.MojoHandle handle) :
-      impl = new ScanHandlerProxyImpl.fromHandle(handle) {
+      impl = new _ScanHandlerProxyImpl.fromHandle(handle) {
     ptr = new _ScanHandlerProxyCalls(impl);
   }
 
   ScanHandlerProxy.unbound() :
-      impl = new ScanHandlerProxyImpl.unbound() {
+      impl = new _ScanHandlerProxyImpl.unbound() {
     ptr = new _ScanHandlerProxyCalls(impl);
   }
 
@@ -1716,6 +1704,8 @@
     return new ScanHandlerProxy.fromEndpoint(endpoint);
   }
 
+  String get serviceName => ScanHandler.serviceName;
+
   Future close({bool immediate: false}) => impl.close(immediate: immediate);
 
   Future responseOrError(Future f) => impl.responseOrError(f);
@@ -1754,8 +1744,6 @@
     return new ScanHandlerStub.fromEndpoint(endpoint);
   }
 
-  static const String name = ScanHandlerName;
-
 
 
   dynamic handleMessage(bindings.ServiceMessage message) {
@@ -1766,8 +1754,8 @@
     }
     assert(_impl != null);
     switch (message.header.type) {
-      case kScanHandler_update_name:
-        var params = ScanHandlerUpdateParams.deserialize(
+      case _ScanHandler_updateName:
+        var params = _ScanHandlerUpdateParams.deserialize(
             message.payload);
         _impl.update(params.update);
         break;