frameless
Encodes things as records if there is no Injection defined
Encodes things using injection if there is one defined
Encodes things using a Spark SQL's User Defined Type (UDT) if there is one defined in implicit