docs: def rm_empty_fields(x):
      """
      (Recursive) Go through N number of nested data types and remove all empty entries.
  
      :param any x: Unknown
      :return any x: Unknown
      """
      # No logger here because the function is recursive.
      # Int types don't matter. Return as-is.
      if not isinstance(x, int) and not isinstance(x, float):
          if isinstance(x, str) or x is None:
              try:
                  # Remove new line characters and carriage returns
                  x = x.rstrip()
              except AttributeError:
                  # None types don't matter. Keep going.
                  pass
              if x in EMPTY:
                  # Substitute empty entries with ""
                  x = ''
          elif isinstance(x, list):
              # Recurse once for each item in the list
              for i, v in enumerate(x):
                  x[i] = rm_empty_fields(x[i])
              # After substitutions, remove empty entries.
              for i in x:
                  # Many 0 values are important (coordinates, m/m/m/m). Don't remove them.
                  if not i and i not in [0, 0.0]:
                      x.remove(i)
          elif isinstance(x, dict):
              # First, go through and substitute "" (empty string) entry for any values in EMPTY
              for k, v in x.items():
                  x[k] = rm_empty_fields(v)
              # After substitutions, go through and delete the key-value pair.
              # This has to be done after we come back up from recursion because we cannot pass keys down.
              for key in list(x.keys()):
                  if not x[key] and x[key] not in [0, 0.0]:
                      del x[key]
      return x