-record(codec, { encode :: fun((any()) -> galchemy@ast@expression:sql_value()), decode :: fun((galchemy@ast@expression:sql_value()) -> {ok, any()} | {error, galchemy@orm@codec:codec_error()}) }).