List of abstract objects and json

I recently bumped into an issue where we would had a list of abstract objects that we needed to be able to serialize it and then deserialize it back. Further more, it needed to without special serializer settings or other configuration heavy solutions, since we are providing a model library to third parties and they should be able to deserialize our data without problems. Given the following types A list of List<ItemType> the serialized JSON will look something like this