docs: def sanitize_report_list(wxdata: [str],  # type: ignore  # noqa
                           remove_clr_and_skc: bool = True
                           ) -> ([str], [str], str):  # type: ignore
      """
      Sanitize wxData
  
      We can remove and identify "one-off" elements and fix other issues before parsing a line
  
      We also return the runway visibility and wind shear since they are very easy to recognize
      and their location in the report is non-standard
      """
      shear = ''
      runway_vis = []
      for i, item in reversed(list(enumerate(wxdata))):
          ilen = len(item)
          # Remove elements containing only '/'
          if is_unknown(item):
              wxdata.pop(i)
          # Identify Runway Visibility
          elif ilen > 4 and item[0] == 'R' \
                  and (item[3] == '/' or item[4] == '/') and item[1:3].isdigit():
              runway_vis.append(wxdata.pop(i))
          # Remove RE from wx codes, REVCTS -> VCTS
          elif ilen in [4, 6] and item.startswith('RE'):
              wxdata[i] = item[2:]
          # Fix a slew of easily identifiable conditions where a space does not belong
          elif i and extra_space_exists(wxdata[i - 1], item):
              wxdata[i - 1] += wxdata.pop(i)
          # Remove spurious elements
          elif item in ITEM_REMV:
              wxdata.pop(i)
          # Remove 'Sky Clear' from METAR but not TAF
          elif remove_clr_and_skc and item in ['CLR', 'SKC']:
              wxdata.pop(i)
          # Replace certain items
          elif item in ITEM_REPL:
              wxdata[i] = ITEM_REPL[item]
          # Remove ammend signifier from start of report ('CCA', 'CCB',etc)
          elif ilen == 3 and item.startswith('CC') and item[2].isalpha():
              wxdata.pop(i)
          # Identify Wind Shear
          elif ilen > 6 and item.startswith('WS') and item[5] == '/':
              shear = wxdata.pop(i).replace('KT', '')
          # Fix inconsistant 'P6SM' Ex: TP6SM or 6PSM -> P6SM
          elif ilen > 3 and item[-4:] in VIS_PERMUTATIONS:
              wxdata[i] = 'P6SM'
          # Fix wind T
          elif (ilen == 6 and item[5] in ['K', 'T'] and (item[:5].isdigit() or item.startswith('VRB'))) \
                  or (ilen == 9 and item[8] in ['K', 'T'] and item[5] == 'G' and (
                  item[:5].isdigit() or item.startswith('VRB'))):
              wxdata[i] = item[:-1] + 'KT'
          # Fix joined TX-TN
          elif ilen > 16 and len(item.split('/')) == 3:
              if item.startswith('TX') and 'TN' not in item:
                  tn_index = item.find('TN')
                  wxdata.insert(i + 1, item[:tn_index])
                  wxdata[i] = item[tn_index:]
              elif item.startswith('TN') and item.find('TX') != -1:
                  tx_index = item.find('TX')
                  wxdata.insert(i + 1, item[:tx_index])
                  wxdata[i] = item[tx_index:]
      return wxdata, runway_vis, shear