+ : T[K];
+ }
+ : T | undefined;
+
+// If the schema specifies `id` as a string or number, ensure that `for(...)`
+// only accepts that type. Otherwise, accept `string | number`
+export type ExtractId = Input extends { id: infer Id }
+ ? Id extends string | number
+ ? Id
+ : string | number
+ : string | number;
diff --git a/packages/kit/test/apps/async/src/routes/remote/form/[test_name]/+page.svelte b/packages/kit/test/apps/async/src/routes/remote/form/[test_name]/+page.svelte
index 485cfab34a11..90d2073da38b 100644
--- a/packages/kit/test/apps/async/src/routes/remote/form/[test_name]/+page.svelte
+++ b/packages/kit/test/apps/async/src/routes/remote/form/[test_name]/+page.svelte
@@ -1,17 +1,24 @@
message.current: {message.current}
@@ -20,32 +27,32 @@
-
-set_message.input.message: {set_message.fields.message.value()}
-set_message.pending: {set_message.pending}
-set_message.result: {set_message.result}
-set_reverse_message.result: {set_reverse_message.result}
+set_message.input.message: {set_message().fields.message.value()}
+set_message.pending: {set_message().pending}
+set_message.result: {set_message().result}
+set_reverse_message.result: {set_reverse_message().result}
diff --git a/packages/kit/test/apps/async/src/routes/remote/form/file-upload/+page.svelte b/packages/kit/test/apps/async/src/routes/remote/form/file-upload/+page.svelte
index 850fa70a14db..88be3b30f188 100644
--- a/packages/kit/test/apps/async/src/routes/remote/form/file-upload/+page.svelte
+++ b/packages/kit/test/apps/async/src/routes/remote/form/file-upload/+page.svelte
@@ -1,15 +1,16 @@
-
-{JSON.stringify(upload.result)}
+{JSON.stringify(upload_form.result)}
diff --git a/packages/kit/test/apps/async/src/routes/remote/form/imperative/+page.svelte b/packages/kit/test/apps/async/src/routes/remote/form/imperative/+page.svelte
index 14e4a86ed75c..437fee7540d8 100644
--- a/packages/kit/test/apps/async/src/routes/remote/form/imperative/+page.svelte
+++ b/packages/kit/test/apps/async/src/routes/remote/form/imperative/+page.svelte
@@ -9,26 +9,29 @@
'message is invalid'
)
});
+ const message_form = set_message({
+ preflight: schema
+ });
-