-record(socket, { wip :: sprocket@socket:component_wip(), handlers :: list(sprocket@socket:event_handler()), ws :: gleam@option:option(gleam@erlang@process:subject(glisten@handler:handler_message())), render_update :: fun(() -> nil) }).