cloneValue method
Clones source recursively.
Supports ICloneable, List, Set, Map, and returns primitives as-is.
Implementation
@override
dynamic cloneValue(dynamic source) => switch (source) {
null => null,
ICloneable() => source.clone(),
List() => cloneList(source),
Set() => cloneSet(source),
Map() => cloneMap(source),
_ => source,
};