code: func (m Manager) EventCategory(ctx context.Context, event types.BaseEvent) (string, error) {
  	// Most of the event details are included in the Event.FullFormattedMessage, but the category
  	// is only available via the EventManager description.eventInfo property.  The value of this
  	// property is static, so we fetch and once and cache.
  	eventCategory, err := m.eventCategoryMap(ctx)
  	if err != nil {
  		return "", err
  	}
  
  	switch e := event.(type) {
  	case *types.EventEx:
  		if e.Severity == "" {
  			return "info", nil
  		}
  		return e.Severity, nil
  	}
  
  	class := reflect.TypeOf(event).Elem().Name()
  
  	return eventCategory[class], nil
  }
docs: // EventCategory returns the category for an event, such as "info" or "error" for example.