class_docstr: Class for connecting models and data operations with json files with
  its descriptions and metadata
docstr: Finds the first suitable tag for the operation in the repository.
  
  Args:
      operation: name of the operation
      tags_to_find: list of suitable tags. The later the tag, the higher its priority in case of intersection
  
  Returns:
      Optional[List[str]]: first suitable tag or ``None``
docstr_tok: ["Finds","the","first","suitable","tag","for","the","operation","in","the","repository",".","Args",":","operation",":","name","of","the","operation","tags_to_find",":","list","of","suitable","tags",".","The","later","the","tag",",","the","higher","its","priority","in","case","of","intersection","Returns",":","Optional","[","List","[","str","]","]",":","first","suitable","tag","or","``","None","``"]
code: def get_first_suitable_operation_tag(
      self, operation: str, tags_to_find: Optional[List[str]] = None
  ) -> Optional[str]:
      """Finds the first suitable tag for the operation in the repository.
  
      Args:
          operation: name of the operation
          tags_to_find: list of suitable tags. The later the tag, the higher its priority in case of intersection
  
      Returns:
          Optional[List[str]]: first suitable tag or ``None``
      """
  
      tags_to_find = tags_to_find or self.default_tags
  
      info = self.operation_info_by_id(operation)
      if info is None:
          return None
      for tag in reversed(tags_to_find):
          if tag in info.tags:
              return tag
      return None
  
imports: import json
  import os
  from collections import defaultdict
  from dataclasses import dataclass
  from typing import Dict, List, Optional, TYPE_CHECKING, Union
  import numpy
  from golem.core.log import default_log
  from golem.utilities.data_structures import ensure_wrapped_in_sequence
  from fedot.core.constants import AUTO_PRESET_NAME, BEST_QUALITY_PRESET_NAME
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.core.repository.json_evaluation import import_enums_from_str, import_strategy_from_str, read_field
  from fedot.core.repository.tasks import Task, TaskTypesEnum
label_desc: Use image node_id 16 for calling the OperationTypesRepository obj's underlying member method code with example usage: obj.get_first_suitable_operation_tag(operation, tags_to_find) and returns: None, None, tag