code: func sendAnnotations(ctx context.Context, ann *milo.Step) error {
  	fullPrefix := fmt.Sprintf("%s/%s", client.Logdog.Prefix, client.Logdog.Namespace)
  	steps, err := deprecated.ConvertBuildSteps(ctx, ann.Substep, client.Logdog.CoordinatorHost, fullPrefix)
  	if err != nil {
  		return errors.Annotate(err, "failed to extra steps from annotations").Err()
  	}
  
  	props, err := milo.ExtractProperties(ann)
  	if err != nil {
  		return errors.Annotate(err, "failed to extract properties from annotations").Err()
  	}
  
  	buildMU.Lock()
  	defer buildMU.Unlock()
  	build.Steps = steps
  	build.Output.Properties = props
  	return errors.Annotate(client.WriteBuild(build), "failed to write build message").Err()
  }
docs: // sendAnnotations parses steps and properties from ann, updates build and sends
  // to the caller.