Map<String, dynamic> toJson() { return { 'current_index': currentIndex, 'target_index': targetIndex, 'stage': stage, }..removeWhere((key, value) => value == null); }