ItemValueEncoder

typealias ItemValueEncoder = (descriptor: SerialDescriptor, index: Int, compositeEncoder: CompositeEncoder, value: Any) -> Boolean

Implementation may be

if (value is Array<*> && value.isNotEmpty() && value.all { it is DrivingPrivilege }) {
true.also {
compositeEncoder.encodeSerializableElement(
descriptor,
index,
ArraySerializer<DrivingPrivilege, DrivingPrivilege>(DrivingPrivilege.serializer()),
value as Array<DrivingPrivilege>
)
}
} else {
false
}