jackson kotlin sealed interface