code: func ConvertBuildSteps(c context.Context, annSteps []*annotpb.Step_Substep, defaultLogdogHost, defaultLogdogPrefix string) ([]*pb.Step, error) {
  	sc := &stepConverter{
  		defaultLogdogHost:   defaultLogdogHost,
  		defaultLogdogPrefix: defaultLogdogPrefix,
  		steps:               map[string]*pb.Step{},
  	}
  
  	var bbSteps []*pb.Step
  	if _, err := sc.convertSubsteps(c, &bbSteps, annSteps, ""); err != nil {
  		return nil, err
  	}
  	return bbSteps, nil
  }
docs: // ConvertBuildSteps converts a build given the root step's substeps, which must
  // be the actual steps of the build, and the Logdog URL for links conversion.
  // The provided context is used only for logging.
  //
  // Does not verify that the returned build satisfies all the constraints
  // described in the proto files.
  //
  // Unsupported fields:
  //   * Substep.annotation_stream,
  //   * Step.link,
  //   * Link.isolate_object,
  //   * Link.dm_link.