code: def __add_fields(
      fields: List["AllowedFieldTypes"],
      client: "httpx.Client",
      id: UUID,
  ) -> List["AllowedRemoteFieldTypes"]:
      uploaded_fields = []
      for field in fields:
          try:
              new_field = datasets_api_v1.add_field(
                  client=client, id=id, field=field.to_server_payload()
              ).parsed
              uploaded_fields.append(
                  ArgillaMixin._parse_to_remote_field(new_field)
              )
          except Exception as e:
              ArgillaMixin.__delete_dataset(client=client, id=id)
              raise Exception(
                  f"Failed while adding the field '{field.name}' to the `FeedbackDataset` in Argilla with"
                  f" exception: {e}"
              ) from e
      return uploaded_fields
  
imports: import logging
  from typing import TYPE_CHECKING, List, Literal, Optional, Type, Union
  from uuid import UUID
  from argilla.client.feedback.dataset.helpers import get_dataset_by_name_and_workspace
  from argilla.client.feedback.dataset.remote.dataset import INCLUDE_ALL_VECTORS_PARAM, RemoteFeedbackDataset
  from argilla.client.feedback.schemas.enums import FieldTypes, MetadataPropertyTypes, QuestionTypes
  from argilla.client.feedback.schemas.fields import TextField
  from argilla.client.feedback.schemas.questions import LabelQuestion, MultiLabelQuestion, RankingQuestion, RatingQuestion, TextQuestion
  from argilla.client.feedback.schemas.remote.fields import RemoteTextField
  from argilla.client.feedback.schemas.remote.metadata import RemoteFloatMetadataProperty, RemoteIntegerMetadataProperty, RemoteTermsMetadataProperty
  from argilla.client.feedback.schemas.remote.questions import RemoteLabelQuestion, RemoteMultiLabelQuestion, RemoteRankingQuestion, RemoteRatingQuestion, RemoteTextQuestion
  from argilla.client.feedback.schemas.types import AllowedMetadataPropertyTypes
  from argilla.client.feedback.schemas.vector_settings import VectorSettings
  from argilla.client.sdk.commons.errors import AlreadyExistsApiError
  from argilla.client.sdk.v1.datasets import api
  from argilla.client.singleton import ArgillaSingleton
  from argilla.client.workspaces import Workspace
label_desc: Use image node_id 3 for calling the ArgillaMixin obj's underlying member method code with example usage: obj.__add_fields(fields, client, id) and returns: uploaded_fields