def __init__(
        self,
        fields: Optional[List[Field]] = None,
        questions: Optional[List[QuestionType]] = None,
        vectors: Optional[List[VectorField]] = None,
        metadata: Optional[List[MetadataType]] = None,
        guidelines: Optional[str] = None,
        allow_extra_metadata: bool = False,
        distribution: Optional[TaskDistribution] = None,
        mapping: Optional[Dict[str, Union[str, Sequence[str]]]] = None,
        _dataset: Optional["Dataset"] = None,
    ) -> None:
        """
        Args:
            fields (List[Field]): A list of Field objects that represent the fields in the Dataset.
            questions (List[Union[LabelQuestion, MultiLabelQuestion, RankingQuestion, TextQuestion, RatingQuestion]]):
                A list of Question objects that represent the questions in the Dataset.
            vectors (List[VectorField]): A list of VectorField objects that represent the vectors in the Dataset.
            metadata (List[MetadataField]): A list of MetadataField objects that represent the metadata in the Dataset.
            guidelines (str): A string containing the guidelines for the Dataset.
            allow_extra_metadata (bool): A boolean that determines whether or not extra metadata is allowed in the
                Dataset. Defaults to False.
            distribution (TaskDistribution): The annotation task distribution configuration.
                Default to DEFAULT_TASK_DISTRIBUTION
            mapping (Dict[str, Union[str, Sequence[str]]]): A dictionary that maps incoming data names to Argilla dataset attributes in DatasetRecords.
        """
        super().__init__(client=_dataset._client if _dataset else None)

        self._dataset = _dataset
        self._distribution = distribution or TaskDistribution.default()
        self._mapping = mapping
        self.__guidelines = self.__process_guidelines(guidelines)
        self.__allow_extra_metadata = allow_extra_metadata

        self.__questions = SettingsProperties(self, questions)
        self.__fields = SettingsProperties(self, fields)
        self.__vectors = SettingsProperties(self, vectors)
        self.__metadata = SettingsProperties(self, metadata)

        Args:
            fields (List[Field]): A list of Field objects that represent the fields in the Dataset.
            questions (List[Union[LabelQuestion, MultiLabelQuestion, RankingQuestion, TextQuestion, RatingQuestion]]):
                A list of Question objects that represent the questions in the Dataset.
            vectors (List[VectorField]): A list of VectorField objects that represent the vectors in the Dataset.
            metadata (List[MetadataField]): A list of MetadataField objects that represent the metadata in the Dataset.
            guidelines (str): A string containing the guidelines for the Dataset.
            allow_extra_metadata (bool): A boolean that determines whether or not extra metadata is allowed in the
                Dataset. Defaults to False.
            distribution (TaskDistribution): The annotation task distribution configuration.
                Default to DEFAULT_TASK_DISTRIBUTION
            mapping (Dict[str, Union[str, Sequence[str]]]): A dictionary that maps incoming data names to Argilla dataset attributes in DatasetRecords.
        
argilla/src/argilla/settings/_resource.py