Kotlin Extension Members Are Great Even for Types You Do Control

Extensions can add more bounds on generics.

Guidelines I Use When Naming Code Things

Do not use abbreviations, use qualifiers, and remove duplication.

Public is the Only Worthwhile Visibility Modifier

Private is code pollution.

Polymorphic Deserialization with Moshi

Moshi can map raw Java types to custom Java models.