There are several use-cases for being it non-internal: #1768, #1715 , #1411 , #1392. The common idea is that we create some kind of custom sealed/polymorphic serializer that can serialize different classes