The number of elements this descriptor describes, besides from the class itself. elementsCount describes the number of semantic elements, not the number of actual fields/properties in the serialized form, even though they frequently match.

For example, for the following class class Complex(val real: Long, val imaginary: Long) the corresponding descriptor and the serialized form both have two elements, while for class IntList : ArrayList<Int>() the corresponding descriptor has a single element (IntDescriptor, the type of list element), but from zero up to Int.MAX_VALUE values in the serialized form.