-record(server_app_builder, { view :: fun((list(binary()), any()) -> gleam@option:option(lustre@internals@vdom:element(illustrious@state:illustrious_action(any())))), default_model :: any(), updater :: fun((any(), any()) -> {any(), lustre@effect:effect(illustrious@state:illustrious_action(any()))}), decoder :: fun((gleam@dynamic:dynamic_()) -> {ok, illustrious@state:illustrious_action(any())} | {error, list(gleam@dynamic:decode_error())}), initializer :: fun((list(binary()), any()) -> {ok, gleam@json:json()} | {error, any()}), loader :: fun((list(binary()), any()) -> {ok, gleam@json:json()} | {error, any()}), error_serializer :: fun((any()) -> binary()) }).