code: def get_field(catalog, identifier=None, title=None,
                distribution_identifier=None):
      
  
      msg = "Se requiere un 'id' o 'title' para buscar el field."
      assert identifier or title, msg
  
      # 1. BUSCA los fields en el catálogo
      # búsqueda optimizada por identificador
      if identifier:
          try:
              return _get_field_by_identifier(catalog, identifier)
          except BaseException:
              try:
                  catalog._build_index()
                  return _get_field_by_identifier(catalog, identifier)
              except BaseException:
                  filtered_fields = get_fields(
                      catalog, {"field": {"id": identifier}})
      elif title and distribution_identifier:
          filtered_fields = get_fields(
              catalog, {
                  "distribution": {"identifier": distribution_identifier},
                  "field": {"title": title}
              }
          )
      elif title:
          filtered_fields = get_fields(
              catalog, {"field": {"title": title}})
  
      # 2. CHEQUEA que la cantidad de fields es consistente
      if len(filtered_fields) > 1:
          if identifier:
              raise ce.FieldIdRepetitionError(
                  identifier, filtered_fields)
          elif title and distribution_identifier:
              # el título de un field no puede repetirse en una distribution
              raise ce.FieldTitleRepetitionError(
                  title, filtered_fields)
          elif title:
              # el título de un field puede repetirse
              return filtered_fields
      elif len(filtered_fields) == 0:
          return None
      else:
          return filtered_fields[0]
docs: Devuelve un Field del catálogo.