-record(schema, { tag :: binary(), version :: integer(), encoder :: fun((any()) -> {ok, bitstring()} | {error, distribute@codec:encode_error()}), decoder :: fun((bitstring()) -> {ok, any()} | {error, distribute@codec:decode_error()}) }).