-record(keyboard_widget, { id :: binary(), render :: fun((telega@dialog@types:widget_ctx(any(), any(), any(), any())) -> list(list(telega@dialog@types:dialog_button()))), on_event :: fun((telega@dialog@types:widget_ctx(any(), any(), any(), any()), binary(), gleam@option:option(binary())) -> {ok, telega@dialog@types:widget_result(any())} | {error, any()}), goto_targets :: list(binary()), static_actions :: list(binary()) }).