code: func (r *GormWorkItemRepository) List(ctx context.Context, spaceID uuid.UUID, criteria criteria.Expression, parentExists *bool, start *int, limit *int, sort SortWorkItemsBy) ([]WorkItem, int, error) {
  	defer goa.MeasureSince([]string{"goa", "db", "workitem", "list"}, time.Now())
  	result, count, err := r.listItemsFromDB(ctx, spaceID, criteria, parentExists, start, limit, sort)
  	if err != nil {
  		return nil, 0, errs.WithStack(err)
  	}
  	res := make([]WorkItem, len(result))
  	for index, value := range result {
  		wiType, err := r.witr.Load(ctx, value.Type)
  		if err != nil {
  			return nil, 0, errors.NewInternalError(ctx, err)
  		}
  		modelWI, err := ConvertWorkItemStorageToModel(wiType, &value)
  		if err != nil {
  			return nil, 0, errors.NewInternalError(ctx, err)
  		}
  		res[index] = *modelWI
  	}
  	return res, count, nil
  }
docs: // List returns work item selected by the given criteria.Expression, starting with start (zero-based) and returning at most limit items