Creates a parsing plan to parse the given filesystem object into the given desired_type.
        Implementing classes may wish to support additional parameters.

        :param desired_type: the type of object that should be created as the output of parsing plan execution.
        :param filesystem_object: the persisted object that should be parsed
        :param logger: an optional logger to log all parsing plan creation and execution information
        :param options: a dictionary additional implementation-specific parameters (one dict per parser id).
        Implementing classes may use 'self._get_applicable_options()' to get the options that are of interest for this
        parser.
        :return:

def create_parsing_plan(self, desired_type: Type[T], filesystem_object: PersistedObject, logger: Logger,
                            options: Dict[str, Dict[str, Any]]) -> ParsingPlan[T]:
        """
        Creates a parsing plan to parse the given filesystem object into the given desired_type.
        Implementing classes may wish to support additional parameters.

        :param desired_type: the type of object that should be created as the output of parsing plan execution.
        :param filesystem_object: the persisted object that should be parsed
        :param logger: an optional logger to log all parsing plan creation and execution information
        :param options: a dictionary additional implementation-specific parameters (one dict per parser id).
        Implementing classes may use 'self._get_applicable_options()' to get the options that are of interest for this
        parser.
        :return:
        """
        pass