code: func (p *stepConverter) convertSubsteps(c context.Context, bbSteps *[]*pb.Step, annSubsteps []*annotpb.Step_Substep, stepPrefix string) ([]*pb.Step, error) {
  	bbSubsteps := make([]*pb.Step, 0, len(annSubsteps))
  	for _, annSubstep := range annSubsteps {
  		annStep := annSubstep.GetStep()
  		if annStep == nil {
  			return nil, errors.Reason("unexpected non-Step substep %v", annSubstep).Err()
  		}
  
  		bbSubstep, err := p.convertSteps(c, bbSteps, annStep, stepPrefix)
  		if err != nil {
  			return nil, err
  		}
  
  		bbSubsteps = append(bbSubsteps, bbSubstep)
  	}
  
  	return bbSubsteps, nil
  }
docs: // convertSubsteps converts substeps, which we expect to be Steps, not Logdog
  // annotation streams.