This all works really nicely, however, we have introduced a problem. Our MixerService provides the ability to save these compositions with all their tracks. However the tracks now contain complex objects such as Observables and even private references with getters and setters.
In fact, if you were to attempt to process our TrackModel with JSON.stringify now, it would fail because you cannot stringify certain structures. So, we now need a way to serialize our data before storing it, as ...