-record(schema, { table :: binary(), primary_key :: binary(), fields :: list(database@schema:field()), decoder :: fun((gleam@dynamic:dynamic()) -> {ok, any()} | {error, list(gleam@dynamic:decode_error())}) }).