-record(websocket_handler, { on_close :: gleam@option:option(fun((gleam@otp@process:sender(glisten@tcp:handler_message())) -> nil)), on_init :: gleam@option:option(fun((gleam@otp@process:sender(glisten@tcp:handler_message())) -> nil)), handler :: fun((mist@websocket:message(), glisten@tcp:socket()) -> {ok, nil} | {error, nil}) }).