В дуби это сделано на машинерии с имплиситами и шейплесом, сделано не очень удачно, как по мне. В skunk дед топит за явное объявление декодеров и энкодеров, т.е. надо описать как читать твой кейс-класс из типов постгри. Например так
implicit val decoder: Decoder[Entity] = int4 ~ varchar