code: func mergeMetadata(machineMetadata, dynamicMetadata map[string]string) map[string]string {
  	if dynamicMetadata == nil {
  		return machineMetadata
  	}
  	finalMetadata := make(map[string]string, len(dynamicMetadata))
  	for k, v := range machineMetadata {
  		finalMetadata[k] = v
  	}
  	for k, v := range dynamicMetadata {
  		if v == "" {
  			delete(finalMetadata, k)
  		} else {
  			finalMetadata[k] = v
  		}
  	}
  	return finalMetadata
  }
docs: // mergeMetadata merges the machine-set metadata with the dynamic metadata to better facilitate
  // machines leaving and rejoining a cluster.
  // Merging metadata uses the following rules:
  // - Any keys that are only in one collection are added as-is
  // - Any keys that exist in both, the dynamic value takes precence
  // - Any keys that have a zero-value string in the dynamic metadata are considered deleted
  //   and are not included in the final collection