code: def cast_to_swimlane(self, value):
          
          value = super(ListField, self).cast_to_swimlane(value)
  
          if not value:
              return None
  
          # Copy initial values to pop IDs out as each value is hydrated back to server format, without modifying initial
          # cache of value -> list(ids) map
          value_ids = deepcopy(self._initial_value_to_ids_map)
  
          return [self._build_list_item(item, value_ids[item].pop(0) if value_ids[item] else None) for item in value]
docs: Restore swimlane format, attempting to keep initial IDs for any previously existing values