Deserialization strategy defines the serial form of a type T, including its structural description, declared by the descriptor and the actual deserialization process, defined by the implementation of the deserialize method.
deserialize method takes an instance of Decoder, and, knowing the serial form of the T, invokes primitive retrieval methods on the decoder and then transforms the received primitives to an instance of T.
A serial form of the type is a transformation of the concrete instance into a sequence of primitive values and vice versa. The serial form is not required to completely mimic the structure of the class, for example, a specific implementation may represent multiple integer values as a single string, omit or add some values that are present in the type, but not in the instance.
For a more detailed explanation of the serialization process, please refer to KSerializer documentation.