code: func (a *Annotator) Tag(tags ...TagValueGenerator) *Annotator {
  	if a == nil {
  		return a
  	}
  	tagMap := make(map[TagKey]interface{}, len(tags))
  	for _, t := range tags {
  		v := t.GenerateErrorTagValue()
  		tagMap[v.Key] = v.Value
  	}
  	if len(tagMap) > 0 {
  		if a.ctx.tags == nil {
  			a.ctx.tags = tagMap
  		} else {
  			for k, v := range tagMap {
  				a.ctx.tags[k] = v
  			}
  		}
  	}
  	return a
  }
docs: // Tag adds a tag with an optional value to this error.
  //
  // `value` is a unary optional argument, and must be a simple type (i.e. has
  // a reflect.Kind which is a base data type like bool, string, or int).