code: def cull_nonmatching_trees(nexson, tree_id, curr_version=None):
      if curr_version is None:
          curr_version = detect_nexson_version(nexson)
      if not _is_by_id_hbf(curr_version):
          nexson = convert_nexson_format(nexson, BY_ID_HONEY_BADGERFISH)
      nexml_el = get_nexml_el(nexson)
      tree_groups = nexml_el['treesById']
      tree_groups_to_del = []
      for tgi, tree_group in tree_groups.items():
          tbi = tree_group['treeById']
          if tree_id in tbi:
              trees_to_del = [i for i in tbi.keys() if i != tree_id]
              for tid in trees_to_del:
                  tree_group['^ot:treeElementOrder'].remove(tid)
                  del tbi[tid]
          else:
              tree_groups_to_del.append(tgi)
      for tgid in tree_groups_to_del:
          nexml_el['^ot:treesElementOrder'].remove(tgid)
          del tree_groups[tgid]
      return nexson