diff --git a/base/schema-typescript-zod/test/inputs/schema/cut-enum.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/cut-enum.schema/default/TopLevel.ts
index c03cced..8787324 100644
--- a/base/schema-typescript-zod/test/inputs/schema/cut-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/cut-enum.schema/default/TopLevel.ts
@@ -2,6 +2,6 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "foo": z.number(),
+    "foo": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/id-no-address.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/id-no-address.schema/default/TopLevel.ts
index 2140cfb..ca37781 100644
--- a/base/schema-typescript-zod/test/inputs/schema/id-no-address.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/id-no-address.schema/default/TopLevel.ts
@@ -2,6 +2,6 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "item": z.number(),
+    "item": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/id-root.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/id-root.schema/default/TopLevel.ts
index 5753e86..46f2fc7 100644
--- a/base/schema-typescript-zod/test/inputs/schema/id-root.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/id-root.schema/default/TopLevel.ts
@@ -2,6 +2,6 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "bar": z.number(),
+    "bar": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/implicit-all-of.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/implicit-all-of.schema/default/TopLevel.ts
index b3648ce..fb54aa7 100644
--- a/base/schema-typescript-zod/test/inputs/schema/implicit-all-of.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/implicit-all-of.schema/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "foo": z.number(),
+    "foo": z.number().int(),
     "bar": z.boolean(),
     "quux": z.string(),
 });
diff --git a/base/schema-typescript-zod/test/inputs/schema/implicit-one-of.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/implicit-one-of.schema/default/TopLevel.ts
index 79be3e7..e38977f 100644
--- a/base/schema-typescript-zod/test/inputs/schema/implicit-one-of.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/implicit-one-of.schema/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "foo": z.number(),
+    "foo": z.number().int(),
     "bar": z.boolean().optional(),
     "quux": z.string().optional(),
 });
diff --git a/base/schema-typescript-zod/test/inputs/schema/integer-string.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/integer-string.schema/default/TopLevel.ts
index adbbe84..f58c74a 100644
--- a/base/schema-typescript-zod/test/inputs/schema/integer-string.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/integer-string.schema/default/TopLevel.ts
@@ -7,7 +7,7 @@ export const TopLevelSchema = z.object({
     "nullable": z.union([z.null(), z.string()]),
     "one": z.string(),
     "optional": z.string().optional(),
-    "unionWithInt": z.union([z.number(), z.string()]),
-    "unionWithIntAndEnum": z.union([z.number(), z.string()]),
+    "unionWithInt": z.union([z.number().int(), z.string()]),
+    "unionWithIntAndEnum": z.union([z.number().int(), z.string()]),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/integer-type.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/integer-type.schema/default/TopLevel.ts
index 4e92ace..8545f90 100644
--- a/base/schema-typescript-zod/test/inputs/schema/integer-type.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/integer-type.schema/default/TopLevel.ts
@@ -2,14 +2,14 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "above_i32_max": z.number(),
-    "below_i32_min": z.number(),
-    "i32_range": z.number(),
-    "large_bounds": z.number(),
-    "only_maximum": z.number(),
-    "only_minimum": z.number(),
-    "small_negative": z.number(),
-    "small_positive": z.number(),
-    "unbounded": z.number(),
+    "above_i32_max": z.number().int(),
+    "below_i32_min": z.number().int(),
+    "i32_range": z.number().int(),
+    "large_bounds": z.number().int(),
+    "only_maximum": z.number().int(),
+    "only_minimum": z.number().int(),
+    "small_negative": z.number().int(),
+    "small_positive": z.number().int(),
+    "unbounded": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.ts
index fe5a033..56c5837 100644
--- a/base/schema-typescript-zod/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.ts
@@ -1,4 +1,4 @@
 import * as z from "zod";
 
-export const TopLevelSchema = z.array(z.number());
+export const TopLevelSchema = z.array(z.number().int());
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/min-max-items.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/min-max-items.schema/default/TopLevel.ts
index ad2cbf0..cb6d1d1 100644
--- a/base/schema-typescript-zod/test/inputs/schema/min-max-items.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/min-max-items.schema/default/TopLevel.ts
@@ -2,10 +2,10 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "maxOnly": z.array(z.number()).max(3),
+    "maxOnly": z.array(z.number().int()).max(3),
     "minAndMax": z.array(z.number()).min(1).max(4),
     "minOnly": z.array(z.string()).min(2),
     "plain": z.array(z.string()),
-    "unionItems": z.array(z.union([z.number(), z.string()])).min(2),
+    "unionItems": z.array(z.union([z.number().int(), z.string()])).min(2),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/minmax-integer.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/minmax-integer.schema/default/TopLevel.ts
index 34fe7fc..5fc5f3f 100644
--- a/base/schema-typescript-zod/test/inputs/schema/minmax-integer.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/minmax-integer.schema/default/TopLevel.ts
@@ -2,13 +2,13 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "free": z.number(),
-    "intersection": z.number(),
-    "max": z.number(),
-    "min": z.number(),
-    "minmax": z.number(),
-    "minMaxIntersection": z.number(),
-    "minMaxUnion": z.number(),
-    "union": z.number(),
+    "free": z.number().int(),
+    "intersection": z.number().int(),
+    "max": z.number().int(),
+    "min": z.number().int(),
+    "minmax": z.number().int(),
+    "minMaxIntersection": z.number().int(),
+    "minMaxUnion": z.number().int(),
+    "union": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/non-standard-ref.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/non-standard-ref.schema/default/TopLevel.ts
index cf3b2e0..e8901bb 100644
--- a/base/schema-typescript-zod/test/inputs/schema/non-standard-ref.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/non-standard-ref.schema/default/TopLevel.ts
@@ -2,8 +2,8 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "bar": z.number(),
-    "foo": z.number(),
+    "bar": z.number().int(),
+    "foo": z.number().int(),
     "quux": z.boolean(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
index 2352d7a..df50ae8 100644
--- a/base/schema-typescript-zod/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
@@ -9,10 +9,10 @@ export type Coordinate = z.infer<typeof CoordinateSchema>;
 
 export const TopLevelSchema = z.object({
     "coordinates": z.array(CoordinateSchema).optional(),
-    "count": z.number().optional(),
+    "count": z.number().int().optional(),
     "label": z.string().optional(),
     "requiredCoordinates": z.array(CoordinateSchema),
-    "requiredCount": z.number(),
+    "requiredCount": z.number().int(),
     "requiredLabel": z.string(),
     "weight": z.number().optional(),
 });
diff --git a/base/schema-typescript-zod/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
index 56bfdd1..8c0ba37 100644
--- a/base/schema-typescript-zod/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
@@ -3,9 +3,9 @@ import * as z from "zod";
 
 export const TopLevelSchema = z.object({
     "optDouble": z.number().optional(),
-    "optInt": z.number().optional(),
+    "optInt": z.number().int().optional(),
     "optPattern": z.string().optional(),
     "optString": z.string().optional(),
-    "reqZeroMin": z.number(),
+    "reqZeroMin": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/prefix-items.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/prefix-items.schema/default/TopLevel.ts
index 4ac5bdf..de99345 100644
--- a/base/schema-typescript-zod/test/inputs/schema/prefix-items.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/prefix-items.schema/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "open": z.array(z.union([z.boolean(), z.number()])),
-    "tuple": z.array(z.union([z.boolean(), z.number()])),
+    "open": z.array(z.union([z.boolean(), z.number().int()])),
+    "tuple": z.array(z.union([z.boolean(), z.number().int()])),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/ref-id-files.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/ref-id-files.schema/default/TopLevel.ts
index c03cced..8787324 100644
--- a/base/schema-typescript-zod/test/inputs/schema/ref-id-files.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/ref-id-files.schema/default/TopLevel.ts
@@ -2,6 +2,6 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "foo": z.number(),
+    "foo": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/tuple.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/tuple.schema/default/TopLevel.ts
index 2a5f4f2..77b2256 100644
--- a/base/schema-typescript-zod/test/inputs/schema/tuple.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/tuple.schema/default/TopLevel.ts
@@ -2,6 +2,6 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "tuple": z.array(z.union([z.boolean(), z.number()])),
+    "tuple": z.array(z.union([z.boolean(), z.number().int()])),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/union.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/union.schema/default/TopLevel.ts
index f47267b..ded6565 100644
--- a/base/schema-typescript-zod/test/inputs/schema/union.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/union.schema/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelElementSchema = z.object({
-    "one": z.number().optional(),
+    "one": z.number().int().optional(),
     "two": z.boolean(),
     "three": z.number().optional(),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/010b1.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/010b1.json/default/TopLevel.ts
index e0ff31d..b8a003b 100644
--- a/base/typescript-zod/test/inputs/json/misc/010b1.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/010b1.json/default/TopLevel.ts
@@ -7,12 +7,12 @@ export const CountrySchema = z.enum([
 export type Country = z.infer<typeof CountrySchema>;
 
 export const TopLevelElementSchema = z.object({
-    "age": z.number(),
+    "age": z.number().int(),
     "country": CountrySchema,
-    "females": z.number(),
-    "males": z.number(),
-    "total": z.number(),
-    "year": z.number(),
+    "females": z.number().int(),
+    "males": z.number().int(),
+    "total": z.number().int(),
+    "year": z.number().int(),
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/016af.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/016af.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/016af.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/016af.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/09f54.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/09f54.json/default/TopLevel.ts
index 31293f9..b71dac0 100644
--- a/base/typescript-zod/test/inputs/json/misc/09f54.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/09f54.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export type Datum = z.infer<typeof DatumSchema>;
 
 export const DescriptionSchema = z.object({
     "base_period": z.string(),
-    "missing": z.number(),
+    "missing": z.number().int(),
     "title": z.string(),
     "units": z.string(),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/0a358.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/0a358.json/default/TopLevel.ts
index 0e03b86..4fb2e4f 100644
--- a/base/typescript-zod/test/inputs/json/misc/0a358.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/0a358.json/default/TopLevel.ts
@@ -8,7 +8,7 @@ export type Facets = z.infer<typeof FacetsSchema>;
 export const ResultSchema = z.object({
     "code": z.string(),
     "created_at": z.coerce.date(),
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
     "updated_at": z.coerce.date(),
     "uri": z.string(),
@@ -16,11 +16,11 @@ export const ResultSchema = z.object({
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "facets": FacetsSchema,
-    "limit": z.number(),
+    "limit": z.number().int(),
     "next": z.string(),
-    "offset": z.number(),
+    "offset": z.number().int(),
     "previous": z.boolean(),
     "results": z.array(ResultSchema),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/0a91a.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
index 9deec20..9acc770 100644
--- a/base/typescript-zod/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
@@ -14,7 +14,7 @@ export const ActorSchema = z.object({
     "avatar_url": z.string(),
     "display_login": z.string().optional(),
     "gravatar_id": z.string(),
-    "id": z.number(),
+    "id": z.number().int(),
     "login": z.string(),
     "url": z.string(),
 });
@@ -34,7 +34,7 @@ export const MergedBySchema = z.object({
     "gists_url": z.string(),
     "gravatar_id": z.string(),
     "html_url": z.string(),
-    "id": z.number(),
+    "id": z.number().int(),
     "login": z.string(),
     "organizations_url": z.string(),
     "received_events_url": z.string(),
@@ -53,7 +53,7 @@ export const CommentsSchema = z.object({
 export type Comments = z.infer<typeof CommentsSchema>;
 
 export const TopLevelRepoSchema = z.object({
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
     "url": z.string(),
 });
@@ -87,8 +87,8 @@ export const BaseRepoSchema = z.object({
     "downloads_url": z.string(),
     "events_url": z.string(),
     "fork": z.boolean(),
-    "forks": z.number(),
-    "forks_count": z.number(),
+    "forks": z.number().int(),
+    "forks_count": z.number().int(),
     "forks_url": z.string(),
     "full_name": z.string(),
     "git_commits_url": z.string(),
@@ -103,7 +103,7 @@ export const BaseRepoSchema = z.object({
     "homepage": z.null(),
     "hooks_url": z.string(),
     "html_url": z.string(),
-    "id": z.number(),
+    "id": z.number().int(),
     "issue_comment_url": z.string(),
     "issue_events_url": z.string(),
     "issues_url": z.string(),
@@ -116,16 +116,16 @@ export const BaseRepoSchema = z.object({
     "mirror_url": z.null(),
     "name": z.string(),
     "notifications_url": z.string(),
-    "open_issues": z.number(),
-    "open_issues_count": z.number(),
+    "open_issues": z.number().int(),
+    "open_issues_count": z.number().int(),
     "owner": MergedBySchema,
     "private": z.boolean(),
     "pulls_url": z.string(),
     "pushed_at": z.coerce.date(),
     "releases_url": z.string(),
-    "size": z.number(),
+    "size": z.number().int(),
     "ssh_url": z.string(),
-    "stargazers_count": z.number(),
+    "stargazers_count": z.number().int(),
     "stargazers_url": z.string(),
     "statuses_url": z.string(),
     "subscribers_url": z.string(),
@@ -136,8 +136,8 @@ export const BaseRepoSchema = z.object({
     "trees_url": z.string(),
     "updated_at": z.coerce.date(),
     "url": z.string(),
-    "watchers": z.number(),
-    "watchers_count": z.number(),
+    "watchers": z.number().int(),
+    "watchers_count": z.number().int(),
 });
 export type BaseRepo = z.infer<typeof BaseRepoSchema>;
 
@@ -163,23 +163,23 @@ export const BaseSchema = z.object({
 export type Base = z.infer<typeof BaseSchema>;
 
 export const PullRequestSchema = z.object({
-    "additions": z.number(),
+    "additions": z.number().int(),
     "assignee": z.null(),
     "assignees": z.array(z.any()),
     "base": BaseSchema,
     "body": z.string(),
-    "changed_files": z.number(),
+    "changed_files": z.number().int(),
     "closed_at": z.coerce.date(),
-    "comments": z.number(),
+    "comments": z.number().int(),
     "comments_url": z.string(),
-    "commits": z.number(),
+    "commits": z.number().int(),
     "commits_url": z.string(),
     "created_at": z.coerce.date(),
-    "deletions": z.number(),
+    "deletions": z.number().int(),
     "diff_url": z.string(),
     "head": BaseSchema,
     "html_url": z.string(),
-    "id": z.number(),
+    "id": z.number().int(),
     "issue_url": z.string(),
     "_links": LinksSchema,
     "locked": z.boolean(),
@@ -191,12 +191,12 @@ export const PullRequestSchema = z.object({
     "merged_at": z.coerce.date(),
     "merged_by": MergedBySchema,
     "milestone": z.null(),
-    "number": z.number(),
+    "number": z.number().int(),
     "patch_url": z.string(),
     "rebaseable": z.null(),
     "requested_reviewers": z.array(z.any()),
     "review_comment_url": z.string(),
-    "review_comments": z.number(),
+    "review_comments": z.number().int(),
     "review_comments_url": z.string(),
     "state": z.string(),
     "statuses_url": z.string(),
@@ -212,16 +212,16 @@ export const PayloadSchema = z.object({
     "before": z.string().optional(),
     "commits": z.array(CommitSchema).optional(),
     "description": z.union([z.null(), z.string()]).optional(),
-    "distinct_size": z.number().optional(),
+    "distinct_size": z.number().int().optional(),
     "head": z.string().optional(),
     "master_branch": z.string().optional(),
-    "number": z.number().optional(),
+    "number": z.number().int().optional(),
     "pull_request": PullRequestSchema.optional(),
-    "push_id": z.number().optional(),
+    "push_id": z.number().int().optional(),
     "pusher_type": z.string().optional(),
     "ref": z.string().optional(),
     "ref_type": z.string().optional(),
-    "size": z.number().optional(),
+    "size": z.number().int().optional(),
 });
 export type Payload = z.infer<typeof PayloadSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/0b91a.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/0b91a.json/default/TopLevel.ts
index a2d71e3..f0fcfa4 100644
--- a/base/typescript-zod/test/inputs/json/misc/0b91a.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/0b91a.json/default/TopLevel.ts
@@ -3,14 +3,14 @@ import * as z from "zod";
 
 export const ResponseInfoSchema = z.object({
     "developerMessage": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type ResponseInfo = z.infer<typeof ResponseInfoSchema>;
 
 export const ResultsetSchema = z.object({
-    "count": z.number(),
-    "page": z.number(),
-    "pagesize": z.number(),
+    "count": z.number().int(),
+    "page": z.number().int(),
+    "pagesize": z.number().int(),
 });
 export type Resultset = z.infer<typeof ResultsetSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/0cffa.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/0cffa.json/default/TopLevel.ts
index 520763f..477e5bd 100644
--- a/base/typescript-zod/test/inputs/json/misc/0cffa.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/0cffa.json/default/TopLevel.ts
@@ -71,14 +71,14 @@ export type User = z.infer<typeof UserSchema>;
 export const MetaSchema = z.object({
     "msg": z.string(),
     "response_id": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const PaginationSchema = z.object({
-    "count": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "count": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Pagination = z.infer<typeof PaginationSchema>;
 
@@ -117,7 +117,7 @@ export const DatumSchema = z.object({
     "id": z.string(),
     "images": ImagesSchema,
     "import_datetime": z.string(),
-    "is_indexable": z.number(),
+    "is_indexable": z.number().int(),
     "rating": RatingSchema,
     "slug": z.string(),
     "source": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
index 4edfa63..adb9482 100644
--- a/base/typescript-zod/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
@@ -22,8 +22,8 @@ export const ResultLanguageSchema = z.enum([
 export type ResultLanguage = z.infer<typeof ResultLanguageSchema>;
 
 export const CollectionSchema = z.object({
-    "id": z.number(),
-    "movies": z.array(z.number()),
+    "id": z.number().int(),
+    "movies": z.array(z.number().int()),
     "name": z.string(),
     "slug": z.string(),
 });
@@ -32,7 +32,7 @@ export type Collection = z.infer<typeof CollectionSchema>;
 export const DetailSchema = z.object({
     "cast": z.string(),
     "director": z.string(),
-    "id": z.number(),
+    "id": z.number().int(),
     "language": DetailLanguageSchema,
     "storyline": z.string(),
     "tagline": z.string(),
@@ -48,8 +48,8 @@ export const FavMovieSchema = z.object({
 export type FavMovie = z.infer<typeof FavMovieSchema>;
 
 export const ImageSchema = z.object({
-    "favs": z.number(),
-    "id": z.number(),
+    "favs": z.number().int(),
+    "id": z.number().int(),
     "thumbnail": z.string(),
     "type": TypeSchema,
     "url": z.string(),
@@ -65,33 +65,33 @@ export const VideoSchema = z.object({
 export type Video = z.infer<typeof VideoSchema>;
 
 export const VoteScoreSchema = z.object({
-    "avg": z.number(),
-    "score": z.number(),
-    "total": z.number(),
+    "avg": z.number().int(),
+    "score": z.number().int(),
+    "total": z.number().int(),
 });
 export type VoteScore = z.infer<typeof VoteScoreSchema>;
 
 export const ResultSchema = z.object({
-    "active_screens": z.number(),
+    "active_screens": z.number().int(),
     "collections": z.array(CollectionSchema),
     "details": z.array(DetailSchema),
-    "duration": z.number(),
+    "duration": z.number().int(),
     "fav_movie": FavMovieSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "images": z.array(ImageSchema),
     "language": ResultLanguageSchema,
     "release_date": z.string(),
-    "stars": z.number(),
+    "stars": z.number().int(),
     "tags": z.union([z.null(), z.array(z.any())]),
     "title": z.string(),
     "videos": z.array(VideoSchema),
     "vote_score": VoteScoreSchema,
-    "watches": z.number(),
+    "watches": z.number().int(),
 });
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "next": z.string(),
     "previous": z.null(),
     "results": z.array(ResultSchema),
diff --git a/base/typescript-zod/test/inputs/json/misc/127a1.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/127a1.json/default/TopLevel.ts
index 91ef4db..9543120 100644
--- a/base/typescript-zod/test/inputs/json/misc/127a1.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/127a1.json/default/TopLevel.ts
@@ -70,14 +70,14 @@ export type User = z.infer<typeof UserSchema>;
 export const MetaSchema = z.object({
     "msg": z.string(),
     "response_id": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const PaginationSchema = z.object({
-    "count": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "count": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Pagination = z.infer<typeof PaginationSchema>;
 
@@ -116,7 +116,7 @@ export const DatumSchema = z.object({
     "id": z.string(),
     "images": ImagesSchema,
     "import_datetime": z.string(),
-    "is_indexable": z.number(),
+    "is_indexable": z.number().int(),
     "rating": RatingSchema,
     "slug": z.string(),
     "source": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/16bc5.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
index 39f2537..3daf6ff 100644
--- a/base/typescript-zod/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/176f1.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/176f1.json/default/TopLevel.ts
index 959910e..87d8212 100644
--- a/base/typescript-zod/test/inputs/json/misc/176f1.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/176f1.json/default/TopLevel.ts
@@ -29,7 +29,7 @@ export type Results = z.infer<typeof ResultsSchema>;
 
 export const TopLevelSchema = z.object({
     "message": z.array(z.any()),
-    "responseTime": z.number(),
+    "responseTime": z.number().int(),
     "Results": ResultsSchema,
     "status": z.string(),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/1a7f5.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/1a7f5.json/default/TopLevel.ts
index e0ff31d..b8a003b 100644
--- a/base/typescript-zod/test/inputs/json/misc/1a7f5.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/1a7f5.json/default/TopLevel.ts
@@ -7,12 +7,12 @@ export const CountrySchema = z.enum([
 export type Country = z.infer<typeof CountrySchema>;
 
 export const TopLevelElementSchema = z.object({
-    "age": z.number(),
+    "age": z.number().int(),
     "country": CountrySchema,
-    "females": z.number(),
-    "males": z.number(),
-    "total": z.number(),
-    "year": z.number(),
+    "females": z.number().int(),
+    "males": z.number().int(),
+    "total": z.number().int(),
+    "year": z.number().int(),
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/1b28c.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/1b409.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/1b409.json/default/TopLevel.ts
index 0786b62..04f73e5 100644
--- a/base/typescript-zod/test/inputs/json/misc/1b409.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/1b409.json/default/TopLevel.ts
@@ -53,9 +53,9 @@ export const TitleSchema = z.enum([
 export type Title = z.infer<typeof TitleSchema>;
 
 export const MetaSchema = z.object({
-    "limit": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "limit": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
@@ -71,11 +71,11 @@ export type Extra = z.infer<typeof ExtraSchema>;
 export const PersonSchema = z.object({
     "bioguideid": z.string(),
     "birthday": z.string(),
-    "cspanid": z.number(),
+    "cspanid": z.number().int(),
     "firstname": z.string(),
     "gender": GenderSchema,
     "gender_label": GenderLabelSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "lastname": z.string(),
     "link": z.string(),
     "middlename": z.string(),
@@ -92,13 +92,13 @@ export type Person = z.infer<typeof PersonSchema>;
 
 export const ObjectElementSchema = z.object({
     "caucus": z.null(),
-    "congress_numbers": z.array(z.number()),
+    "congress_numbers": z.array(z.number().int()),
     "current": z.boolean(),
     "description": z.string(),
-    "district": z.number(),
+    "district": z.number().int(),
     "enddate": z.string(),
     "extra": ExtraSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "leadership_title": z.union([z.null(), z.string()]),
     "party": PartySchema,
     "person": PersonSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/262f0.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/262f0.json/default/TopLevel.ts
index 91eddbd..11c1fa7 100644
--- a/base/typescript-zod/test/inputs/json/misc/262f0.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/262f0.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/26b49.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/26b49.json/default/TopLevel.ts
index 050afab..cb79551 100644
--- a/base/typescript-zod/test/inputs/json/misc/26b49.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/26b49.json/default/TopLevel.ts
@@ -64,14 +64,14 @@ export type User = z.infer<typeof UserSchema>;
 export const MetaSchema = z.object({
     "msg": z.string(),
     "response_id": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const PaginationSchema = z.object({
-    "count": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "count": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Pagination = z.infer<typeof PaginationSchema>;
 
@@ -111,7 +111,7 @@ export const DatumSchema = z.object({
     "id": z.string(),
     "images": ImagesSchema,
     "import_datetime": z.string(),
-    "is_indexable": z.number(),
+    "is_indexable": z.number().int(),
     "rating": RatingSchema,
     "slug": z.string(),
     "source": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/26c9c.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/26c9c.json/default/TopLevel.ts
index 92ea667..a8da277 100644
--- a/base/typescript-zod/test/inputs/json/misc/26c9c.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/26c9c.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "item": z.string(),
 });
 export type Top = z.infer<typeof TopSchema>;
@@ -90,7 +90,7 @@ export const OwnerSchema = z.object({
 export type Owner = z.infer<typeof OwnerSchema>;
 
 export const ExpressionSchema = z.object({
-    "columnId": z.number(),
+    "columnId": z.number().int(),
     "type": z.string(),
 });
 export type Expression = z.infer<typeof ExpressionSchema>;
@@ -98,8 +98,8 @@ export type Expression = z.infer<typeof ExpressionSchema>;
 export const CachedContentsSchema = z.object({
     "average": z.string().optional(),
     "largest": z.string(),
-    "non_null": z.number(),
-    "null": z.number(),
+    "non_null": z.number().int(),
+    "null": z.number().int(),
     "smallest": z.string(),
     "sum": z.string().optional(),
     "top": z.array(TopSchema),
@@ -137,12 +137,12 @@ export const ColumnSchema = z.object({
     "fieldName": z.string(),
     "flags": z.array(z.string()).optional(),
     "format": FormatSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
-    "position": z.number(),
+    "position": z.number().int(),
     "renderTypeName": z.string(),
-    "tableColumnId": z.number().optional(),
-    "width": z.number().optional(),
+    "tableColumnId": z.number().int().optional(),
+    "width": z.number().int().optional(),
 });
 export type Column = z.infer<typeof ColumnSchema>;
 
@@ -164,41 +164,41 @@ export type Query = z.infer<typeof QuerySchema>;
 export const ViewSchema = z.object({
     "attribution": z.string(),
     "attributionLink": z.string(),
-    "averageRating": z.number(),
+    "averageRating": z.number().int(),
     "category": z.string(),
     "columns": z.array(ColumnSchema),
-    "createdAt": z.number(),
+    "createdAt": z.number().int(),
     "description": z.string(),
     "displayType": z.string(),
-    "downloadCount": z.number(),
+    "downloadCount": z.number().int(),
     "flags": z.array(z.string()),
     "grants": z.array(GrantSchema),
     "hideFromCatalog": z.boolean(),
     "hideFromDataJson": z.boolean(),
     "id": z.string(),
-    "indexUpdatedAt": z.number(),
+    "indexUpdatedAt": z.number().int(),
     "locale": z.string(),
     "metadata": MetadataSchema,
     "name": z.string(),
     "newBackend": z.boolean(),
-    "numberOfComments": z.number(),
-    "oid": z.number(),
+    "numberOfComments": z.number().int(),
+    "oid": z.number().int(),
     "owner": OwnerSchema,
     "provenance": z.string(),
     "publicationAppendEnabled": z.boolean(),
-    "publicationDate": z.number(),
-    "publicationGroup": z.number(),
+    "publicationDate": z.number().int(),
+    "publicationGroup": z.number().int(),
     "publicationStage": z.string(),
     "query": QuerySchema,
     "rights": z.array(z.string()),
-    "rowsUpdatedAt": z.number(),
+    "rowsUpdatedAt": z.number().int(),
     "rowsUpdatedBy": z.string(),
     "tableAuthor": OwnerSchema,
-    "tableId": z.number(),
+    "tableId": z.number().int(),
     "tags": z.array(z.string()),
-    "totalTimesRated": z.number(),
-    "viewCount": z.number(),
-    "viewLastModified": z.number(),
+    "totalTimesRated": z.number().int(),
+    "viewCount": z.number().int(),
+    "viewLastModified": z.number().int(),
     "viewType": z.string(),
 });
 export type View = z.infer<typeof ViewSchema>;
@@ -209,7 +209,7 @@ export const MetaSchema = z.object({
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const TopLevelSchema = z.object({
-    "data": z.array(z.array(z.union([z.null(), z.number(), z.string()]))),
+    "data": z.array(z.array(z.union([z.null(), z.number().int(), z.string()]))),
     "meta": MetaSchema,
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/27332.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/27332.json/default/TopLevel.ts
index b6a1548..4015451 100644
--- a/base/typescript-zod/test/inputs/json/misc/27332.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/27332.json/default/TopLevel.ts
@@ -48,32 +48,32 @@ export type Kind = z.infer<typeof KindSchema>;
 
 export const OembedSchema = z.object({
     "description": z.string(),
-    "height": z.number(),
+    "height": z.number().int(),
     "html": z.string(),
     "provider_name": z.string(),
     "provider_url": z.string(),
-    "thumbnail_height": z.number(),
+    "thumbnail_height": z.number().int(),
     "thumbnail_url": z.string(),
-    "thumbnail_width": z.number(),
+    "thumbnail_width": z.number().int(),
     "title": z.string(),
     "type": z.string(),
     "version": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Oembed = z.infer<typeof OembedSchema>;
 
 export const MediaEmbedSchema = z.object({
     "content": z.string().optional(),
-    "height": z.number().optional(),
+    "height": z.number().int().optional(),
     "scrolling": z.boolean().optional(),
-    "width": z.number().optional(),
+    "width": z.number().int().optional(),
 });
 export type MediaEmbed = z.infer<typeof MediaEmbedSchema>;
 
 export const SourceSchema = z.object({
-    "height": z.number(),
+    "height": z.number().int(),
     "url": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Source = z.infer<typeof SourceSchema>;
 
@@ -119,9 +119,9 @@ export const ChildDataSchema = z.object({
     "created_utc": z.number(),
     "distinguished": z.union([z.null(), z.string()]),
     "domain": DomainSchema,
-    "downs": z.number(),
+    "downs": z.number().int(),
     "edited": z.boolean(),
-    "gilded": z.number(),
+    "gilded": z.number().int(),
     "hidden": z.boolean(),
     "hide_score": z.boolean(),
     "id": z.string(),
@@ -135,7 +135,7 @@ export const ChildDataSchema = z.object({
     "media_embed": MediaEmbedSchema,
     "mod_reports": z.array(z.any()),
     "name": z.string(),
-    "num_comments": z.number(),
+    "num_comments": z.number().int(),
     "num_reports": z.null(),
     "over_18": z.boolean(),
     "permalink": z.string(),
@@ -145,7 +145,7 @@ export const ChildDataSchema = z.object({
     "removal_reason": z.null(),
     "report_reasons": z.null(),
     "saved": z.boolean(),
-    "score": z.number(),
+    "score": z.number().int(),
     "secure_media": z.union([z.null(), MediaSchema]),
     "secure_media_embed": MediaEmbedSchema,
     "selftext": z.string(),
@@ -158,10 +158,10 @@ export const ChildDataSchema = z.object({
     "subreddit_type": SubredditTypeSchema,
     "suggested_sort": z.null(),
     "thumbnail": z.string(),
-    "thumbnail_height": z.union([z.null(), z.number()]),
-    "thumbnail_width": z.union([z.null(), z.number()]),
+    "thumbnail_height": z.union([z.null(), z.number().int()]),
+    "thumbnail_width": z.union([z.null(), z.number().int()]),
     "title": z.string(),
-    "ups": z.number(),
+    "ups": z.number().int(),
     "url": z.string(),
     "user_reports": z.array(z.any()),
     "view_count": z.null(),
diff --git a/base/typescript-zod/test/inputs/json/misc/29f47.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/29f47.json/default/TopLevel.ts
index 945a720..343504d 100644
--- a/base/typescript-zod/test/inputs/json/misc/29f47.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/29f47.json/default/TopLevel.ts
@@ -55,9 +55,9 @@ export const MediaEmbedSchema = z.object({
 export type MediaEmbed = z.infer<typeof MediaEmbedSchema>;
 
 export const SourceSchema = z.object({
-    "height": z.number(),
+    "height": z.number().int(),
     "url": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Source = z.infer<typeof SourceSchema>;
 
@@ -105,9 +105,9 @@ export const ChildDataSchema = z.object({
     "created_utc": z.number(),
     "distinguished": DistinguishedSchema,
     "domain": DomainSchema,
-    "downs": z.number(),
+    "downs": z.number().int(),
     "edited": z.union([z.boolean(), z.number()]),
-    "gilded": z.number(),
+    "gilded": z.number().int(),
     "hidden": z.boolean(),
     "hide_score": z.boolean(),
     "id": z.string(),
@@ -121,7 +121,7 @@ export const ChildDataSchema = z.object({
     "media_embed": MediaEmbedSchema,
     "mod_reports": z.array(z.any()),
     "name": z.string(),
-    "num_comments": z.number(),
+    "num_comments": z.number().int(),
     "num_reports": z.null(),
     "over_18": z.boolean(),
     "permalink": z.string(),
@@ -131,7 +131,7 @@ export const ChildDataSchema = z.object({
     "removal_reason": z.null(),
     "report_reasons": z.null(),
     "saved": z.boolean(),
-    "score": z.number(),
+    "score": z.number().int(),
     "secure_media": z.null(),
     "secure_media_embed": MediaEmbedSchema,
     "selftext": z.string(),
@@ -144,10 +144,10 @@ export const ChildDataSchema = z.object({
     "subreddit_type": SubredditTypeSchema,
     "suggested_sort": z.union([z.null(), z.string()]),
     "thumbnail": z.string(),
-    "thumbnail_height": z.union([z.null(), z.number()]),
-    "thumbnail_width": z.union([z.null(), z.number()]),
+    "thumbnail_height": z.union([z.null(), z.number().int()]),
+    "thumbnail_width": z.union([z.null(), z.number().int()]),
     "title": z.string(),
-    "ups": z.number(),
+    "ups": z.number().int(),
     "url": z.string(),
     "user_reports": z.array(z.any()),
     "view_count": z.null(),
diff --git a/base/typescript-zod/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
index 58d10aa..5f7295d 100644
--- a/base/typescript-zod/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
@@ -79,9 +79,9 @@ export const TitleSchema = z.enum([
 export type Title = z.infer<typeof TitleSchema>;
 
 export const MetaSchema = z.object({
-    "limit": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "limit": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
@@ -97,11 +97,11 @@ export type Extra = z.infer<typeof ExtraSchema>;
 export const PersonSchema = z.object({
     "bioguideid": z.string(),
     "birthday": z.string(),
-    "cspanid": z.number(),
+    "cspanid": z.number().int(),
     "firstname": z.string(),
     "gender": GenderSchema,
     "gender_label": GenderLabelSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "lastname": z.string(),
     "link": z.string(),
     "middlename": z.string(),
@@ -118,13 +118,13 @@ export type Person = z.infer<typeof PersonSchema>;
 
 export const ObjectElementSchema = z.object({
     "caucus": z.union([z.null(), PartySchema]),
-    "congress_numbers": z.array(z.number()),
+    "congress_numbers": z.array(z.number().int()),
     "current": z.boolean(),
     "description": z.string(),
     "district": z.null(),
     "enddate": z.string(),
     "extra": ExtraSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "leadership_title": z.union([z.null(), z.string()]),
     "party": PartySchema,
     "person": PersonSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/32431.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/32431.json/default/TopLevel.ts
index 45c7d65..e0f114b 100644
--- a/base/typescript-zod/test/inputs/json/misc/32431.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/32431.json/default/TopLevel.ts
@@ -46,34 +46,34 @@ export const PropertiesSchema = z.object({
     "detail": z.string(),
     "dmin": z.union([z.null(), z.number()]),
     "felt": z.null(),
-    "gap": z.union([z.null(), z.number()]),
+    "gap": z.union([z.null(), z.number().int()]),
     "ids": z.string(),
     "mag": z.number(),
     "magType": MagTypeSchema,
     "mmi": z.null(),
     "net": z.string(),
-    "nst": z.union([z.null(), z.number()]),
+    "nst": z.union([z.null(), z.number().int()]),
     "place": z.string(),
     "rms": z.number(),
-    "sig": z.number(),
+    "sig": z.number().int(),
     "sources": z.string(),
     "status": StatusSchema,
-    "time": z.number(),
+    "time": z.number().int(),
     "title": z.string(),
-    "tsunami": z.number(),
+    "tsunami": z.number().int(),
     "type": PropertiesTypeSchema,
     "types": z.string(),
-    "tz": z.number(),
-    "updated": z.number(),
+    "tz": z.number().int(),
+    "updated": z.number().int(),
     "url": z.string(),
 });
 export type Properties = z.infer<typeof PropertiesSchema>;
 
 export const MetadataSchema = z.object({
     "api": z.string(),
-    "count": z.number(),
-    "generated": z.number(),
-    "status": z.number(),
+    "count": z.number().int(),
+    "generated": z.number().int(),
+    "status": z.number().int(),
     "title": z.string(),
     "url": z.string(),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/337ed.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/337ed.json/default/TopLevel.ts
index b90f5ba..cb60a3e 100644
--- a/base/typescript-zod/test/inputs/json/misc/337ed.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/337ed.json/default/TopLevel.ts
@@ -27,7 +27,7 @@ export const FacetsSchema = z.object({
 export type Facets = z.infer<typeof FacetsSchema>;
 
 export const CustomIncomeSchema = z.object({
-    "amount": z.number(),
+    "amount": z.number().int(),
     "created_at": z.coerce.date(),
     "id": z.string(),
     "name": z.string(),
@@ -39,35 +39,35 @@ export const CustomIncomeSchema = z.object({
 export type CustomIncome = z.infer<typeof CustomIncomeSchema>;
 
 export const ResultSchema = z.object({
-    "cost_absolute": z.union([z.null(), z.number()]),
-    "cost_max": z.union([z.null(), z.number()]),
-    "cost_min": z.union([z.null(), z.number()]),
+    "cost_absolute": z.union([z.null(), z.number().int()]),
+    "cost_max": z.union([z.null(), z.number().int()]),
+    "cost_min": z.union([z.null(), z.number().int()]),
     "created_at": z.coerce.date(),
     "customIncomes": z.array(CustomIncomeSchema),
     "direct_rep_costs_max": z.null(),
     "direct_rep_costs_min": z.null(),
     "end_date": z.coerce.date(),
-    "eur_sources_grants": z.number(),
+    "eur_sources_grants": z.number().int(),
     "eur_sources_grants_src": z.union([z.null(), z.string()]),
-    "eur_sources_procurement": z.number(),
+    "eur_sources_procurement": z.number().int(),
     "eur_sources_procurement_src": z.union([z.null(), z.string()]),
     "id": z.string(),
     "new_organisation": z.null(),
     "no_clients": z.union([z.null(), z.string()]),
     "other_financial_information": z.union([z.null(), z.string()]),
-    "other_sources_contributions": z.union([z.null(), z.number()]),
-    "other_sources_donation": z.union([z.null(), z.number()]),
-    "other_sources_total": z.union([z.null(), z.number()]),
-    "public_financing_infranational": z.union([z.null(), z.number()]),
-    "public_financing_national": z.union([z.null(), z.number()]),
-    "public_financing_total": z.union([z.null(), z.number()]),
+    "other_sources_contributions": z.union([z.null(), z.number().int()]),
+    "other_sources_donation": z.union([z.null(), z.number().int()]),
+    "other_sources_total": z.union([z.null(), z.number().int()]),
+    "public_financing_infranational": z.union([z.null(), z.number().int()]),
+    "public_financing_national": z.union([z.null(), z.number().int()]),
+    "public_financing_total": z.union([z.null(), z.number().int()]),
     "representative": z.string(),
     "start_date": z.coerce.date(),
     "status": StatusSchema,
-    "total_budget": z.union([z.null(), z.number()]),
-    "turnover_absolute": z.union([z.null(), z.number()]),
-    "turnover_max": z.union([z.null(), z.number()]),
-    "turnover_min": z.union([z.null(), z.number()]),
+    "total_budget": z.union([z.null(), z.number().int()]),
+    "turnover_absolute": z.union([z.null(), z.number().int()]),
+    "turnover_max": z.union([z.null(), z.number().int()]),
+    "turnover_min": z.union([z.null(), z.number().int()]),
     "type": ResultTypeSchema,
     "updated_at": z.coerce.date(),
     "uri": z.string(),
@@ -75,11 +75,11 @@ export const ResultSchema = z.object({
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "facets": FacetsSchema,
-    "limit": z.number(),
+    "limit": z.number().int(),
     "next": z.string(),
-    "offset": z.number(),
+    "offset": z.number().int(),
     "previous": z.boolean(),
     "results": z.array(ResultSchema),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/34702.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/34702.json/default/TopLevel.ts
index 3cd3db7..175939c 100644
--- a/base/typescript-zod/test/inputs/json/misc/34702.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/34702.json/default/TopLevel.ts
@@ -83,7 +83,7 @@ export const FeaturePropertiesSchema = z.object({
     "longitude": z.number(),
     "no": z.union([z.null(), z.string()]),
     "phone": z.number(),
-    "postcode": z.number(),
+    "postcode": z.number().int(),
     "psa": z.string(),
     "region": RegionSchema,
     "station": z.string(),
@@ -111,7 +111,7 @@ export type Feature = z.infer<typeof FeatureSchema>;
 export const TopLevelSchema = z.object({
     "crs": CrsSchema,
     "features": z.array(FeatureSchema),
-    "totalFeatures": z.number(),
+    "totalFeatures": z.number().int(),
     "type": z.string(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/3659d.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/3659d.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/3659d.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/3659d.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/3e9a3.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/3e9a3.json/default/TopLevel.ts
index 959910e..87d8212 100644
--- a/base/typescript-zod/test/inputs/json/misc/3e9a3.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/3e9a3.json/default/TopLevel.ts
@@ -29,7 +29,7 @@ export type Results = z.infer<typeof ResultsSchema>;
 
 export const TopLevelSchema = z.object({
     "message": z.array(z.any()),
-    "responseTime": z.number(),
+    "responseTime": z.number().int(),
     "Results": ResultsSchema,
     "status": z.string(),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
index 5f0f1ea..0707760 100644
--- a/base/typescript-zod/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
@@ -110,7 +110,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/421d4.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/421d4.json/default/TopLevel.ts
index dfe75bf..8e6f4f9 100644
--- a/base/typescript-zod/test/inputs/json/misc/421d4.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/421d4.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "item": z.string(),
 });
 export type Top = z.infer<typeof TopSchema>;
@@ -38,8 +38,8 @@ export type Owner = z.infer<typeof OwnerSchema>;
 export const CachedContentsSchema = z.object({
     "average": z.string().optional(),
     "largest": z.string().optional(),
-    "non_null": z.number(),
-    "null": z.number(),
+    "non_null": z.number().int(),
+    "null": z.number().int(),
     "smallest": z.string().optional(),
     "sum": z.string().optional(),
     "top": z.array(TopSchema).optional(),
@@ -57,12 +57,12 @@ export const ColumnSchema = z.object({
     "fieldName": z.string(),
     "flags": z.array(z.string()).optional(),
     "format": QuerySchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
-    "position": z.number(),
+    "position": z.number().int(),
     "renderTypeName": z.string(),
-    "tableColumnId": z.number().optional(),
-    "width": z.number().optional(),
+    "tableColumnId": z.number().int().optional(),
+    "width": z.number().int().optional(),
 });
 export type Column = z.infer<typeof ColumnSchema>;
 
@@ -77,44 +77,44 @@ export type Metadata = z.infer<typeof MetadataSchema>;
 
 export const ViewSchema = z.object({
     "attribution": z.string(),
-    "averageRating": z.number(),
+    "averageRating": z.number().int(),
     "category": z.string(),
     "columns": z.array(ColumnSchema),
-    "createdAt": z.number(),
+    "createdAt": z.number().int(),
     "description": z.string(),
     "displayType": z.string(),
-    "downloadCount": z.number(),
+    "downloadCount": z.number().int(),
     "flags": z.array(z.string()),
     "grants": z.array(GrantSchema),
     "hideFromCatalog": z.boolean(),
     "hideFromDataJson": z.boolean(),
     "id": z.string(),
-    "indexUpdatedAt": z.number(),
+    "indexUpdatedAt": z.number().int(),
     "license": LicenseSchema,
     "licenseId": z.string(),
     "locale": z.string(),
     "metadata": MetadataSchema,
     "name": z.string(),
     "newBackend": z.boolean(),
-    "numberOfComments": z.number(),
-    "oid": z.number(),
+    "numberOfComments": z.number().int(),
+    "oid": z.number().int(),
     "owner": OwnerSchema,
     "provenance": z.string(),
     "publicationAppendEnabled": z.boolean(),
-    "publicationDate": z.number(),
-    "publicationGroup": z.number(),
+    "publicationDate": z.number().int(),
+    "publicationGroup": z.number().int(),
     "publicationStage": z.string(),
     "query": QuerySchema,
     "rights": z.array(z.string()),
     "rowClass": z.string(),
-    "rowsUpdatedAt": z.number(),
+    "rowsUpdatedAt": z.number().int(),
     "rowsUpdatedBy": z.string(),
     "tableAuthor": OwnerSchema,
-    "tableId": z.number(),
+    "tableId": z.number().int(),
     "tags": z.array(z.string()),
-    "totalTimesRated": z.number(),
-    "viewCount": z.number(),
-    "viewLastModified": z.number(),
+    "totalTimesRated": z.number().int(),
+    "viewCount": z.number().int(),
+    "viewLastModified": z.number().int(),
     "viewType": z.string(),
 });
 export type View = z.infer<typeof ViewSchema>;
@@ -125,7 +125,7 @@ export const MetaSchema = z.object({
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const TopLevelSchema = z.object({
-    "data": z.array(z.array(z.union([z.null(), z.number(), z.string()]))),
+    "data": z.array(z.array(z.union([z.null(), z.number().int(), z.string()]))),
     "meta": MetaSchema,
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/437e7.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/437e7.json/default/TopLevel.ts
index 6ca4495..88dee47 100644
--- a/base/typescript-zod/test/inputs/json/misc/437e7.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/437e7.json/default/TopLevel.ts
@@ -63,14 +63,14 @@ export type User = z.infer<typeof UserSchema>;
 export const MetaSchema = z.object({
     "msg": z.string(),
     "response_id": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const PaginationSchema = z.object({
-    "count": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "count": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Pagination = z.infer<typeof PaginationSchema>;
 
@@ -108,7 +108,7 @@ export const DatumSchema = z.object({
     "id": z.string(),
     "images": ImagesSchema,
     "import_datetime": z.string(),
-    "is_indexable": z.number(),
+    "is_indexable": z.number().int(),
     "rating": RatingSchema,
     "slug": z.string(),
     "source": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/458db.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/458db.json/default/TopLevel.ts
index 8c18c2c..f4e288b 100644
--- a/base/typescript-zod/test/inputs/json/misc/458db.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/458db.json/default/TopLevel.ts
@@ -8,14 +8,14 @@ export type Name = z.infer<typeof NameSchema>;
 
 export const ResponseInfoSchema = z.object({
     "developerMessage": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type ResponseInfo = z.infer<typeof ResponseInfoSchema>;
 
 export const ResultsetSchema = z.object({
-    "count": z.number(),
-    "page": z.number(),
-    "pagesize": z.number(),
+    "count": z.number().int(),
+    "page": z.number().int(),
+    "pagesize": z.number().int(),
 });
 export type Resultset = z.infer<typeof ResultsetSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/4961a.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/4961a.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/4961a.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/4961a.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/4a455.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/4a455.json/default/TopLevel.ts
index 1faa486..9dde2fe 100644
--- a/base/typescript-zod/test/inputs/json/misc/4a455.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/4a455.json/default/TopLevel.ts
@@ -57,7 +57,7 @@ export type Feature = z.infer<typeof FeatureSchema>;
 export const TopLevelSchema = z.object({
     "crs": CrsSchema,
     "features": z.array(FeatureSchema),
-    "totalFeatures": z.number(),
+    "totalFeatures": z.number().int(),
     "type": z.string(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/4c547.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/4c547.json/default/TopLevel.ts
index 39f2537..3daf6ff 100644
--- a/base/typescript-zod/test/inputs/json/misc/4c547.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/4c547.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/4e336.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/4e336.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/4e336.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/4e336.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/54d32.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/54d32.json/default/TopLevel.ts
index c7142dc..2a61df0 100644
--- a/base/typescript-zod/test/inputs/json/misc/54d32.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/54d32.json/default/TopLevel.ts
@@ -22,11 +22,11 @@ export const ResultSchema = z.object({
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "facets": FacetsSchema,
-    "limit": z.number(),
+    "limit": z.number().int(),
     "next": z.string(),
-    "offset": z.number(),
+    "offset": z.number().int(),
     "previous": z.boolean(),
     "results": z.array(ResultSchema),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/5f7fe.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/5f7fe.json/default/TopLevel.ts
index 18adbf1..2b234f6 100644
--- a/base/typescript-zod/test/inputs/json/misc/5f7fe.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/5f7fe.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export const TypeNameSchema = z.enum([
 export type TypeName = z.infer<typeof TypeNameSchema>;
 
 export const TopSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "item": z.string(),
 });
 export type Top = z.infer<typeof TopSchema>;
@@ -95,15 +95,15 @@ export const OwnerSchema = z.object({
 export type Owner = z.infer<typeof OwnerSchema>;
 
 export const ExpressionSchema = z.object({
-    "columnId": z.number(),
+    "columnId": z.number().int(),
     "type": z.string(),
 });
 export type Expression = z.infer<typeof ExpressionSchema>;
 
 export const CachedContentsSchema = z.object({
     "largest": z.string(),
-    "non_null": z.number(),
-    "null": z.number(),
+    "non_null": z.number().int(),
+    "null": z.number().int(),
     "smallest": z.string(),
     "top": z.array(TopSchema),
 });
@@ -140,12 +140,12 @@ export const ColumnSchema = z.object({
     "fieldName": z.string(),
     "flags": z.array(z.string()).optional(),
     "format": FormatSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
-    "position": z.number(),
+    "position": z.number().int(),
     "renderTypeName": TypeNameSchema,
-    "tableColumnId": z.number().optional(),
-    "width": z.number().optional(),
+    "tableColumnId": z.number().int().optional(),
+    "width": z.number().int().optional(),
 });
 export type Column = z.infer<typeof ColumnSchema>;
 
@@ -167,41 +167,41 @@ export type Query = z.infer<typeof QuerySchema>;
 export const ViewSchema = z.object({
     "attribution": z.string(),
     "attributionLink": z.string(),
-    "averageRating": z.number(),
+    "averageRating": z.number().int(),
     "category": z.string(),
     "columns": z.array(ColumnSchema),
-    "createdAt": z.number(),
+    "createdAt": z.number().int(),
     "description": z.string(),
     "displayType": z.string(),
-    "downloadCount": z.number(),
+    "downloadCount": z.number().int(),
     "flags": z.array(z.string()),
     "grants": z.array(GrantSchema),
     "hideFromCatalog": z.boolean(),
     "hideFromDataJson": z.boolean(),
     "id": z.string(),
-    "indexUpdatedAt": z.number(),
+    "indexUpdatedAt": z.number().int(),
     "locale": z.string(),
     "metadata": MetadataSchema,
     "name": z.string(),
     "newBackend": z.boolean(),
-    "numberOfComments": z.number(),
-    "oid": z.number(),
+    "numberOfComments": z.number().int(),
+    "oid": z.number().int(),
     "owner": OwnerSchema,
     "provenance": z.string(),
     "publicationAppendEnabled": z.boolean(),
-    "publicationDate": z.number(),
-    "publicationGroup": z.number(),
+    "publicationDate": z.number().int(),
+    "publicationGroup": z.number().int(),
     "publicationStage": z.string(),
     "query": QuerySchema,
     "rights": z.array(z.string()),
-    "rowsUpdatedAt": z.number(),
+    "rowsUpdatedAt": z.number().int(),
     "rowsUpdatedBy": z.string(),
     "tableAuthor": OwnerSchema,
-    "tableId": z.number(),
+    "tableId": z.number().int(),
     "tags": z.array(z.string()),
-    "totalTimesRated": z.number(),
-    "viewCount": z.number(),
-    "viewLastModified": z.number(),
+    "totalTimesRated": z.number().int(),
+    "viewCount": z.number().int(),
+    "viewLastModified": z.number().int(),
     "viewType": z.string(),
 });
 export type View = z.infer<typeof ViewSchema>;
@@ -212,7 +212,7 @@ export const MetaSchema = z.object({
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const TopLevelSchema = z.object({
-    "data": z.array(z.array(z.union([z.null(), z.number(), z.string()]))),
+    "data": z.array(z.array(z.union([z.null(), z.number().int(), z.string()]))),
     "meta": MetaSchema,
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/617e8.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/617e8.json/default/TopLevel.ts
index b36b09b..4c66528 100644
--- a/base/typescript-zod/test/inputs/json/misc/617e8.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/617e8.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export const TypeNameSchema = z.enum([
 export type TypeName = z.infer<typeof TypeNameSchema>;
 
 export const TopSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "item": z.string(),
 });
 export type Top = z.infer<typeof TopSchema>;
@@ -93,15 +93,15 @@ export const OwnerSchema = z.object({
 export type Owner = z.infer<typeof OwnerSchema>;
 
 export const ExpressionSchema = z.object({
-    "columnId": z.number(),
+    "columnId": z.number().int(),
     "type": z.string(),
 });
 export type Expression = z.infer<typeof ExpressionSchema>;
 
 export const CachedContentsSchema = z.object({
     "largest": z.string(),
-    "non_null": z.number(),
-    "null": z.number(),
+    "non_null": z.number().int(),
+    "null": z.number().int(),
     "smallest": z.string(),
     "top": z.array(TopSchema),
 });
@@ -139,12 +139,12 @@ export const ColumnSchema = z.object({
     "fieldName": z.string(),
     "flags": z.array(z.string()).optional(),
     "format": FormatSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
-    "position": z.number(),
+    "position": z.number().int(),
     "renderTypeName": TypeNameSchema,
-    "tableColumnId": z.number().optional(),
-    "width": z.number().optional(),
+    "tableColumnId": z.number().int().optional(),
+    "width": z.number().int().optional(),
 });
 export type Column = z.infer<typeof ColumnSchema>;
 
@@ -166,41 +166,41 @@ export type Query = z.infer<typeof QuerySchema>;
 export const ViewSchema = z.object({
     "attribution": z.string(),
     "attributionLink": z.string(),
-    "averageRating": z.number(),
+    "averageRating": z.number().int(),
     "category": z.string(),
     "columns": z.array(ColumnSchema),
-    "createdAt": z.number(),
+    "createdAt": z.number().int(),
     "description": z.string(),
     "displayType": z.string(),
-    "downloadCount": z.number(),
+    "downloadCount": z.number().int(),
     "flags": z.array(z.string()),
     "grants": z.array(GrantSchema),
     "hideFromCatalog": z.boolean(),
     "hideFromDataJson": z.boolean(),
     "id": z.string(),
-    "indexUpdatedAt": z.number(),
+    "indexUpdatedAt": z.number().int(),
     "locale": z.string(),
     "metadata": MetadataSchema,
     "name": z.string(),
     "newBackend": z.boolean(),
-    "numberOfComments": z.number(),
-    "oid": z.number(),
+    "numberOfComments": z.number().int(),
+    "oid": z.number().int(),
     "owner": OwnerSchema,
     "provenance": z.string(),
     "publicationAppendEnabled": z.boolean(),
-    "publicationDate": z.number(),
-    "publicationGroup": z.number(),
+    "publicationDate": z.number().int(),
+    "publicationGroup": z.number().int(),
     "publicationStage": z.string(),
     "query": QuerySchema,
     "rights": z.array(z.string()),
-    "rowsUpdatedAt": z.number(),
+    "rowsUpdatedAt": z.number().int(),
     "rowsUpdatedBy": z.string(),
     "tableAuthor": OwnerSchema,
-    "tableId": z.number(),
+    "tableId": z.number().int(),
     "tags": z.array(z.string()),
-    "totalTimesRated": z.number(),
-    "viewCount": z.number(),
-    "viewLastModified": z.number(),
+    "totalTimesRated": z.number().int(),
+    "viewCount": z.number().int(),
+    "viewLastModified": z.number().int(),
     "viewType": z.string(),
 });
 export type View = z.infer<typeof ViewSchema>;
@@ -211,7 +211,7 @@ export const MetaSchema = z.object({
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const TopLevelSchema = z.object({
-    "data": z.array(z.array(z.union([z.null(), z.number(), z.string()]))),
+    "data": z.array(z.array(z.union([z.null(), z.number().int(), z.string()]))),
     "meta": MetaSchema,
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/65dec.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/65dec.json/default/TopLevel.ts
index e948a89..e4060d6 100644
--- a/base/typescript-zod/test/inputs/json/misc/65dec.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/65dec.json/default/TopLevel.ts
@@ -68,7 +68,7 @@ export type Ruling = z.infer<typeof RulingSchema>;
 
 export const CardSchema = z.object({
     "artist": z.string(),
-    "cmc": z.number(),
+    "cmc": z.number().int(),
     "colorIdentity": z.array(ColorIdentitySchema).optional(),
     "colors": z.array(WatermarkSchema).optional(),
     "flavor": z.string().optional(),
@@ -78,7 +78,7 @@ export const CardSchema = z.object({
     "legalities": z.array(LegalityElementSchema),
     "manaCost": z.string().optional(),
     "mciNumber": z.string().optional(),
-    "multiverseid": z.number(),
+    "multiverseid": z.number().int(),
     "name": z.string(),
     "originalText": z.string(),
     "originalType": z.string(),
@@ -93,7 +93,7 @@ export const CardSchema = z.object({
     "toughness": z.string().optional(),
     "type": z.string(),
     "types": z.array(TypeSchema),
-    "variations": z.array(z.number()).optional(),
+    "variations": z.array(z.number().int()).optional(),
     "watermark": WatermarkSchema.optional(),
 });
 export type Card = z.infer<typeof CardSchema>;
@@ -105,7 +105,7 @@ export const TopLevelSchema = z.object({
     "code": z.string(),
     "gathererCode": z.string(),
     "magicCardsInfoCode": z.string(),
-    "mkm_id": z.number(),
+    "mkm_id": z.number().int(),
     "mkm_name": z.string(),
     "name": z.string(),
     "releaseDate": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/6617c.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/6617c.json/default/TopLevel.ts
index 48509f9..e3fe56a 100644
--- a/base/typescript-zod/test/inputs/json/misc/6617c.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/6617c.json/default/TopLevel.ts
@@ -10,6 +10,6 @@ export type IssPosition = z.infer<typeof IssPositionSchema>;
 export const TopLevelSchema = z.object({
     "iss_position": IssPositionSchema,
     "message": z.string(),
-    "timestamp": z.number(),
+    "timestamp": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/67c03.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/67c03.json/default/TopLevel.ts
index 6697703..e945e2c 100644
--- a/base/typescript-zod/test/inputs/json/misc/67c03.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/67c03.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export type Person = z.infer<typeof PersonSchema>;
 
 export const TopLevelSchema = z.object({
     "message": z.string(),
-    "number": z.number(),
+    "number": z.number().int(),
     "people": z.array(PersonSchema),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/68c30.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/68c30.json/default/TopLevel.ts
index bacccd0..42d724e 100644
--- a/base/typescript-zod/test/inputs/json/misc/68c30.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/68c30.json/default/TopLevel.ts
@@ -3,19 +3,19 @@ import * as z from "zod";
 
 export const OutSchema = z.object({
     "addr": z.string(),
-    "n": z.number(),
+    "n": z.number().int(),
     "script": z.string(),
     "spent": z.boolean(),
-    "tx_index": z.number(),
-    "type": z.number(),
-    "value": z.number(),
+    "tx_index": z.number().int(),
+    "type": z.number().int(),
+    "value": z.number().int(),
 });
 export type Out = z.infer<typeof OutSchema>;
 
 export const InputSchema = z.object({
     "prev_out": OutSchema,
     "script": z.string(),
-    "sequence": z.number(),
+    "sequence": z.number().int(),
 });
 export type Input = z.infer<typeof InputSchema>;
 
@@ -23,15 +23,15 @@ export const TxSchema = z.object({
     "double_spend": z.boolean(),
     "hash": z.string(),
     "inputs": z.array(InputSchema),
-    "lock_time": z.number(),
+    "lock_time": z.number().int(),
     "out": z.array(OutSchema),
     "relayed_by": z.string(),
-    "size": z.number(),
-    "time": z.number(),
-    "tx_index": z.number(),
-    "ver": z.number(),
-    "vin_sz": z.number(),
-    "vout_sz": z.number(),
+    "size": z.number().int(),
+    "time": z.number().int(),
+    "tx_index": z.number().int(),
+    "ver": z.number().int(),
+    "vin_sz": z.number().int(),
+    "vout_sz": z.number().int(),
 });
 export type Tx = z.infer<typeof TxSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/6c155.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/6c155.json/default/TopLevel.ts
index 12872b2..d07bf0c 100644
--- a/base/typescript-zod/test/inputs/json/misc/6c155.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/6c155.json/default/TopLevel.ts
@@ -3,14 +3,14 @@ import * as z from "zod";
 
 export const ResponseInfoSchema = z.object({
     "developerMessage": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type ResponseInfo = z.infer<typeof ResponseInfoSchema>;
 
 export const ResultsetSchema = z.object({
-    "count": z.number(),
-    "page": z.number(),
-    "pagesize": z.number(),
+    "count": z.number().int(),
+    "page": z.number().int(),
+    "pagesize": z.number().int(),
 });
 export type Resultset = z.infer<typeof ResultsetSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/6de06.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/6de06.json/default/TopLevel.ts
index 25becf7..faac6d2 100644
--- a/base/typescript-zod/test/inputs/json/misc/6de06.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/6de06.json/default/TopLevel.ts
@@ -22,32 +22,32 @@ export type Kind = z.infer<typeof KindSchema>;
 
 export const OembedSchema = z.object({
     "description": z.string(),
-    "height": z.number(),
+    "height": z.number().int(),
     "html": z.string(),
     "provider_name": z.string(),
     "provider_url": z.string(),
-    "thumbnail_height": z.number(),
+    "thumbnail_height": z.number().int(),
     "thumbnail_url": z.string(),
-    "thumbnail_width": z.number(),
+    "thumbnail_width": z.number().int(),
     "title": z.string(),
     "type": z.string(),
     "version": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Oembed = z.infer<typeof OembedSchema>;
 
 export const MediaEmbedSchema = z.object({
     "content": z.string().optional(),
-    "height": z.number().optional(),
+    "height": z.number().int().optional(),
     "scrolling": z.boolean().optional(),
-    "width": z.number().optional(),
+    "width": z.number().int().optional(),
 });
 export type MediaEmbed = z.infer<typeof MediaEmbedSchema>;
 
 export const SourceSchema = z.object({
-    "height": z.number(),
+    "height": z.number().int(),
     "url": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Source = z.infer<typeof SourceSchema>;
 
@@ -103,9 +103,9 @@ export const ChildDataSchema = z.object({
     "created_utc": z.number(),
     "distinguished": z.null(),
     "domain": z.string(),
-    "downs": z.number(),
+    "downs": z.number().int(),
     "edited": z.boolean(),
-    "gilded": z.number(),
+    "gilded": z.number().int(),
     "hidden": z.boolean(),
     "hide_score": z.boolean(),
     "id": z.string(),
@@ -119,7 +119,7 @@ export const ChildDataSchema = z.object({
     "media_embed": MediaEmbedSchema,
     "mod_reports": z.array(z.any()),
     "name": z.string(),
-    "num_comments": z.number(),
+    "num_comments": z.number().int(),
     "num_reports": z.null(),
     "over_18": z.boolean(),
     "permalink": z.string(),
@@ -129,7 +129,7 @@ export const ChildDataSchema = z.object({
     "removal_reason": z.null(),
     "report_reasons": z.null(),
     "saved": z.boolean(),
-    "score": z.number(),
+    "score": z.number().int(),
     "secure_media": z.union([z.null(), MediaSchema]),
     "secure_media_embed": MediaEmbedSchema,
     "selftext": z.string(),
@@ -142,10 +142,10 @@ export const ChildDataSchema = z.object({
     "subreddit_type": SubredditTypeSchema,
     "suggested_sort": z.union([z.null(), z.string()]),
     "thumbnail": z.string(),
-    "thumbnail_height": z.union([z.null(), z.number()]),
-    "thumbnail_width": z.union([z.null(), z.number()]),
+    "thumbnail_height": z.union([z.null(), z.number().int()]),
+    "thumbnail_width": z.union([z.null(), z.number().int()]),
     "title": z.string(),
-    "ups": z.number(),
+    "ups": z.number().int(),
     "url": z.string(),
     "user_reports": z.array(z.any()),
     "view_count": z.null(),
diff --git a/base/typescript-zod/test/inputs/json/misc/6dec6.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
index 26d48e4..76a5ddc 100644
--- a/base/typescript-zod/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/734ad.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/734ad.json/default/TopLevel.ts
index 71c77fd..109c76e 100644
--- a/base/typescript-zod/test/inputs/json/misc/734ad.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/734ad.json/default/TopLevel.ts
@@ -30,7 +30,7 @@ export const ResultSchema = z.object({
     "be_office_street": z.string().optional(),
     "be_office_town": z.string().optional(),
     "code_of_conduct": z.string(),
-    "contact_country": z.number(),
+    "contact_country": z.number().int(),
     "created_at": z.coerce.date(),
     "entity": z.string(),
     "goals": z.string(),
@@ -49,23 +49,23 @@ export const ResultSchema = z.object({
     "last_update_date": z.coerce.date(),
     "legal": z.string(),
     "legal_status": z.string(),
-    "main_category": z.number(),
+    "main_category": z.number().int(),
     "main_category_title": z.string(),
-    "members": z.number(),
-    "members_100": z.union([z.null(), z.number()]),
-    "members_25": z.union([z.null(), z.number()]),
-    "members_50": z.union([z.null(), z.number()]),
-    "members_75": z.union([z.null(), z.number()]),
+    "members": z.number().int(),
+    "members_100": z.union([z.null(), z.number().int()]),
+    "members_25": z.union([z.null(), z.number().int()]),
+    "members_50": z.union([z.null(), z.number().int()]),
+    "members_75": z.union([z.null(), z.number().int()]),
     "members_fte": z.number(),
     "name": z.string(),
     "native_name": z.null(),
     "networking": z.union([z.null(), z.string()]),
-    "number_of_natural_persons": z.union([z.null(), z.number()]),
+    "number_of_natural_persons": z.union([z.null(), z.number().int()]),
     "other_code_of_conduct": z.union([z.null(), z.string()]),
     "registration_date": z.coerce.date(),
     "status": StatusSchema,
     "structure_members": z.string(),
-    "sub_category": z.number(),
+    "sub_category": z.number().int(),
     "sub_category_title": z.string(),
     "updated_at": z.coerce.date(),
     "uri": z.string(),
@@ -74,11 +74,11 @@ export const ResultSchema = z.object({
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "facets": FacetsSchema,
-    "limit": z.number(),
+    "limit": z.number().int(),
     "next": z.string(),
-    "offset": z.number(),
+    "offset": z.number().int(),
     "previous": z.boolean(),
     "results": z.array(ResultSchema),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/7681c.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/7681c.json/default/TopLevel.ts
index 2e026ad..4b4fb13 100644
--- a/base/typescript-zod/test/inputs/json/misc/7681c.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/7681c.json/default/TopLevel.ts
@@ -72,14 +72,14 @@ export type User = z.infer<typeof UserSchema>;
 export const MetaSchema = z.object({
     "msg": z.string(),
     "response_id": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const PaginationSchema = z.object({
-    "count": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "count": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Pagination = z.infer<typeof PaginationSchema>;
 
@@ -118,7 +118,7 @@ export const DatumSchema = z.object({
     "id": z.string(),
     "images": ImagesSchema,
     "import_datetime": z.string(),
-    "is_indexable": z.number(),
+    "is_indexable": z.number().int(),
     "rating": RatingSchema,
     "slug": z.string(),
     "source": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/7df41.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/7df41.json/default/TopLevel.ts
index 4391962..ebd7655 100644
--- a/base/typescript-zod/test/inputs/json/misc/7df41.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/7df41.json/default/TopLevel.ts
@@ -2,9 +2,9 @@ import * as z from "zod";
 
 
 export const PcSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "label": z.string(),
-    "peak24": z.number(),
+    "peak24": z.number().int(),
 });
 export type Pc = z.infer<typeof PcSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/7eb30.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/7eb30.json/default/TopLevel.ts
index 336a4c7..38ff1ff 100644
--- a/base/typescript-zod/test/inputs/json/misc/7eb30.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/7eb30.json/default/TopLevel.ts
@@ -46,20 +46,20 @@ export const ResultSchema = z.object({
     "fav": z.boolean(),
     "group": GroupSchema,
     "location": LocationSchema,
-    "min_screens": z.number(),
-    "num_views": z.number(),
+    "min_screens": z.number().int(),
+    "num_views": z.number().int(),
     "showtimes": z.string(),
-    "stars": z.number(),
+    "stars": z.number().int(),
     "tel": TelSchema,
     "thai": z.string(),
-    "today_screens": z.number(),
+    "today_screens": z.number().int(),
     "url": z.string(),
     "website": z.string(),
 });
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "next": z.string(),
     "previous": z.null(),
     "results": z.array(ResultSchema),
diff --git a/base/typescript-zod/test/inputs/json/misc/80aff.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/80aff.json/default/TopLevel.ts
index 4f1ed8e..ee6ff28 100644
--- a/base/typescript-zod/test/inputs/json/misc/80aff.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/80aff.json/default/TopLevel.ts
@@ -7,21 +7,21 @@ export type Facets = z.infer<typeof FacetsSchema>;
 
 export const ResultSchema = z.object({
     "created_at": z.coerce.date(),
-    "id": z.number(),
-    "items": z.number(),
+    "id": z.number().int(),
+    "items": z.number().int(),
     "name": z.string(),
-    "parent": z.union([z.null(), z.number()]),
+    "parent": z.union([z.null(), z.number().int()]),
     "updated_at": z.coerce.date(),
     "uri": z.string(),
 });
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "facets": FacetsSchema,
-    "limit": z.number(),
+    "limit": z.number().int(),
     "next": z.boolean(),
-    "offset": z.number(),
+    "offset": z.number().int(),
     "previous": z.boolean(),
     "results": z.array(ResultSchema),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/88130.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/88130.json/default/TopLevel.ts
index 39f2537..3daf6ff 100644
--- a/base/typescript-zod/test/inputs/json/misc/88130.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/88130.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/8a62c.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/9929c.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/9929c.json/default/TopLevel.ts
index 39f2537..3daf6ff 100644
--- a/base/typescript-zod/test/inputs/json/misc/9929c.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/9929c.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
index 7fa2a9e..75b5c3a 100644
--- a/base/typescript-zod/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
@@ -34,11 +34,11 @@ export const ResultSchema = z.object({
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "facets": FacetsSchema,
-    "limit": z.number(),
+    "limit": z.number().int(),
     "next": z.string(),
-    "offset": z.number(),
+    "offset": z.number().int(),
     "previous": z.boolean(),
     "results": z.array(ResultSchema),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/a0496.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/a0496.json/default/TopLevel.ts
index fc0a1a0..492033a 100644
--- a/base/typescript-zod/test/inputs/json/misc/a0496.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/a0496.json/default/TopLevel.ts
@@ -14,7 +14,7 @@ export const TopLevelSchema = z.object({
     "errors": ErrorsSchema,
     "frequency": z.string(),
     "from_date": z.string(),
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
     "premium": z.boolean(),
     "source_code": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/a1eca.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
index 39f2537..3daf6ff 100644
--- a/base/typescript-zod/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/a3d8c.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/a3d8c.json/default/TopLevel.ts
index 05a6826..75a6647 100644
--- a/base/typescript-zod/test/inputs/json/misc/a3d8c.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/a3d8c.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export const TypeNameSchema = z.enum([
 export type TypeName = z.infer<typeof TypeNameSchema>;
 
 export const TopSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "item": z.string(),
 });
 export type Top = z.infer<typeof TopSchema>;
@@ -45,8 +45,8 @@ export type Owner = z.infer<typeof OwnerSchema>;
 export const CachedContentsSchema = z.object({
     "average": z.string().optional(),
     "largest": z.string(),
-    "non_null": z.number(),
-    "null": z.number(),
+    "non_null": z.number().int(),
+    "null": z.number().int(),
     "smallest": z.string(),
     "sum": z.string().optional(),
     "top": z.array(TopSchema),
@@ -64,12 +64,12 @@ export const ColumnSchema = z.object({
     "fieldName": z.string(),
     "flags": z.array(z.string()).optional(),
     "format": QuerySchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
-    "position": z.number(),
+    "position": z.number().int(),
     "renderTypeName": TypeNameSchema,
-    "tableColumnId": z.number().optional(),
-    "width": z.number().optional(),
+    "tableColumnId": z.number().int().optional(),
+    "width": z.number().int().optional(),
 });
 export type Column = z.infer<typeof ColumnSchema>;
 
@@ -83,42 +83,42 @@ export const MetadataSchema = z.object({
 export type Metadata = z.infer<typeof MetadataSchema>;
 
 export const ViewSchema = z.object({
-    "averageRating": z.number(),
+    "averageRating": z.number().int(),
     "category": z.string(),
     "columns": z.array(ColumnSchema),
-    "createdAt": z.number(),
+    "createdAt": z.number().int(),
     "displayType": z.string(),
-    "downloadCount": z.number(),
+    "downloadCount": z.number().int(),
     "flags": z.array(z.string()),
     "grants": z.array(GrantSchema),
     "hideFromCatalog": z.boolean(),
     "hideFromDataJson": z.boolean(),
     "id": z.string(),
-    "indexUpdatedAt": z.number(),
+    "indexUpdatedAt": z.number().int(),
     "license": LicenseSchema,
     "licenseId": z.string(),
     "locale": z.string(),
     "metadata": MetadataSchema,
     "name": z.string(),
     "newBackend": z.boolean(),
-    "numberOfComments": z.number(),
-    "oid": z.number(),
+    "numberOfComments": z.number().int(),
+    "oid": z.number().int(),
     "owner": OwnerSchema,
     "provenance": z.string(),
     "publicationAppendEnabled": z.boolean(),
-    "publicationDate": z.number(),
-    "publicationGroup": z.number(),
+    "publicationDate": z.number().int(),
+    "publicationGroup": z.number().int(),
     "publicationStage": z.string(),
     "query": QuerySchema,
     "rights": z.array(z.string()),
     "rowClass": z.string(),
-    "rowsUpdatedAt": z.number(),
+    "rowsUpdatedAt": z.number().int(),
     "rowsUpdatedBy": z.string(),
     "tableAuthor": OwnerSchema,
-    "tableId": z.number(),
-    "totalTimesRated": z.number(),
-    "viewCount": z.number(),
-    "viewLastModified": z.number(),
+    "tableId": z.number().int(),
+    "totalTimesRated": z.number().int(),
+    "viewCount": z.number().int(),
+    "viewLastModified": z.number().int(),
     "viewType": z.string(),
 });
 export type View = z.infer<typeof ViewSchema>;
@@ -129,7 +129,7 @@ export const MetaSchema = z.object({
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const TopLevelSchema = z.object({
-    "data": z.array(z.array(z.union([z.null(), z.number(), z.string()]))),
+    "data": z.array(z.array(z.union([z.null(), z.number().int(), z.string()]))),
     "meta": MetaSchema,
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/a45b0.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/a45b0.json/default/TopLevel.ts
index e0ff31d..b8a003b 100644
--- a/base/typescript-zod/test/inputs/json/misc/a45b0.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/a45b0.json/default/TopLevel.ts
@@ -7,12 +7,12 @@ export const CountrySchema = z.enum([
 export type Country = z.infer<typeof CountrySchema>;
 
 export const TopLevelElementSchema = z.object({
-    "age": z.number(),
+    "age": z.number().int(),
     "country": CountrySchema,
-    "females": z.number(),
-    "males": z.number(),
-    "total": z.number(),
-    "year": z.number(),
+    "females": z.number().int(),
+    "males": z.number().int(),
+    "total": z.number().int(),
+    "year": z.number().int(),
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/ab0d1.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/ab0d1.json/default/TopLevel.ts
index e0ff31d..b8a003b 100644
--- a/base/typescript-zod/test/inputs/json/misc/ab0d1.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/ab0d1.json/default/TopLevel.ts
@@ -7,12 +7,12 @@ export const CountrySchema = z.enum([
 export type Country = z.infer<typeof CountrySchema>;
 
 export const TopLevelElementSchema = z.object({
-    "age": z.number(),
+    "age": z.number().int(),
     "country": CountrySchema,
-    "females": z.number(),
-    "males": z.number(),
-    "total": z.number(),
-    "year": z.number(),
+    "females": z.number().int(),
+    "males": z.number().int(),
+    "total": z.number().int(),
+    "year": z.number().int(),
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/abb4b.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/af2d1.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/af2d1.json/default/TopLevel.ts
index 0b1772a..c35bd89 100644
--- a/base/typescript-zod/test/inputs/json/misc/af2d1.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/af2d1.json/default/TopLevel.ts
@@ -88,7 +88,7 @@ export const FeaturePropertiesSchema = z.object({
     "area_": z.number(),
     "asset_numb": z.string(),
     "comments": z.union([z.null(), z.string()]),
-    "condition": z.number(),
+    "condition": z.number().int(),
     "constructi": z.union([z.null(), z.string()]),
     "createdate": z.null(),
     "createuser": z.null(),
@@ -98,19 +98,19 @@ export const FeaturePropertiesSchema = z.object({
     "file_numbe": z.union([z.null(), z.string()]),
     "folder_num": z.union([z.null(), z.string()]),
     "funding_ba": z.union([z.null(), FundingBaSchema]),
-    "historic_c": z.number(),
+    "historic_c": z.number().int(),
     "inspection": z.string(),
     "inspectors": z.null(),
     "last_updat": z.null(),
     "level_accu": z.union([z.null(), LevelAccuSchema]),
     "material": MaterialSchema,
-    "mi_prinx": z.number(),
+    "mi_prinx": z.number().int(),
     "mi_symbolo": MiSymboloSchema,
-    "number_lan": z.number(),
+    "number_lan": z.number().int(),
     "owner": z.union([z.null(), z.string()]),
     "positional": z.union([z.null(), LevelAccuSchema]),
     "project_nu": z.union([z.null(), z.string()]),
-    "rec_id": z.number(),
+    "rec_id": z.number().int(),
     "record_cre": z.union([z.null(), z.string()]),
     "shape_area": z.number(),
     "shape_leng": z.number(),
@@ -143,7 +143,7 @@ export type Feature = z.infer<typeof FeatureSchema>;
 export const TopLevelSchema = z.object({
     "crs": CrsSchema,
     "features": z.array(FeatureSchema),
-    "totalFeatures": z.number(),
+    "totalFeatures": z.number().int(),
     "type": z.string(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/be234.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/be234.json/default/TopLevel.ts
index 3f97f4b..56debe5 100644
--- a/base/typescript-zod/test/inputs/json/misc/be234.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/be234.json/default/TopLevel.ts
@@ -50,32 +50,32 @@ export type Kind = z.infer<typeof KindSchema>;
 
 export const OembedSchema = z.object({
     "description": z.string(),
-    "height": z.number(),
+    "height": z.number().int(),
     "html": z.string(),
     "provider_name": z.string(),
     "provider_url": z.string(),
-    "thumbnail_height": z.number(),
+    "thumbnail_height": z.number().int(),
     "thumbnail_url": z.string(),
-    "thumbnail_width": z.number(),
+    "thumbnail_width": z.number().int(),
     "title": z.string(),
     "type": z.string(),
     "version": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Oembed = z.infer<typeof OembedSchema>;
 
 export const MediaEmbedSchema = z.object({
     "content": z.string().optional(),
-    "height": z.number().optional(),
+    "height": z.number().int().optional(),
     "scrolling": z.boolean().optional(),
-    "width": z.number().optional(),
+    "width": z.number().int().optional(),
 });
 export type MediaEmbed = z.infer<typeof MediaEmbedSchema>;
 
 export const SourceSchema = z.object({
-    "height": z.number(),
+    "height": z.number().int(),
     "url": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Source = z.infer<typeof SourceSchema>;
 
@@ -129,9 +129,9 @@ export const ChildDataSchema = z.object({
     "created_utc": z.number(),
     "distinguished": z.union([z.null(), z.string()]),
     "domain": DomainSchema,
-    "downs": z.number(),
+    "downs": z.number().int(),
     "edited": z.boolean(),
-    "gilded": z.number(),
+    "gilded": z.number().int(),
     "hidden": z.boolean(),
     "hide_score": z.boolean(),
     "id": z.string(),
@@ -145,7 +145,7 @@ export const ChildDataSchema = z.object({
     "media_embed": MediaEmbedSchema,
     "mod_reports": z.array(z.any()),
     "name": z.string(),
-    "num_comments": z.number(),
+    "num_comments": z.number().int(),
     "num_reports": z.null(),
     "over_18": z.boolean(),
     "permalink": z.string(),
@@ -155,7 +155,7 @@ export const ChildDataSchema = z.object({
     "removal_reason": z.null(),
     "report_reasons": z.null(),
     "saved": z.boolean(),
-    "score": z.number(),
+    "score": z.number().int(),
     "secure_media": z.union([z.null(), MediaSchema]),
     "secure_media_embed": MediaEmbedSchema,
     "selftext": z.string(),
@@ -168,10 +168,10 @@ export const ChildDataSchema = z.object({
     "subreddit_type": SubredditTypeSchema,
     "suggested_sort": z.null(),
     "thumbnail": z.string(),
-    "thumbnail_height": z.number(),
-    "thumbnail_width": z.number(),
+    "thumbnail_height": z.number().int(),
+    "thumbnail_width": z.number().int(),
     "title": z.string(),
-    "ups": z.number(),
+    "ups": z.number().int(),
     "url": z.string(),
     "user_reports": z.array(z.any()),
     "view_count": z.null(),
diff --git a/base/typescript-zod/test/inputs/json/misc/c0356.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/c0356.json/default/TopLevel.ts
index 3867739..fb32163 100644
--- a/base/typescript-zod/test/inputs/json/misc/c0356.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/c0356.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export type Datum = z.infer<typeof DatumSchema>;
 
 export const DescriptionSchema = z.object({
     "base_period": z.string(),
-    "missing": z.number(),
+    "missing": z.number().int(),
     "title": z.string(),
 });
 export type Description = z.infer<typeof DescriptionSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/c3303.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/c3303.json/default/TopLevel.ts
index 0524487..dc56bb5 100644
--- a/base/typescript-zod/test/inputs/json/misc/c3303.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/c3303.json/default/TopLevel.ts
@@ -69,14 +69,14 @@ export type User = z.infer<typeof UserSchema>;
 export const MetaSchema = z.object({
     "msg": z.string(),
     "response_id": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const PaginationSchema = z.object({
-    "count": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "count": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Pagination = z.infer<typeof PaginationSchema>;
 
@@ -115,7 +115,7 @@ export const DatumSchema = z.object({
     "id": z.string(),
     "images": ImagesSchema,
     "import_datetime": z.string(),
-    "is_indexable": z.number(),
+    "is_indexable": z.number().int(),
     "rating": RatingSchema,
     "slug": z.string(),
     "source": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
index 39f2537..3daf6ff 100644
--- a/base/typescript-zod/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/d0908.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/d0908.json/default/TopLevel.ts
index 782acf1..3c5684f 100644
--- a/base/typescript-zod/test/inputs/json/misc/d0908.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/d0908.json/default/TopLevel.ts
@@ -3,7 +3,7 @@ import * as z from "zod";
 
 export const TotalPopulationSchema = z.object({
     "date": z.string(),
-    "population": z.number(),
+    "population": z.number().int(),
 });
 export type TotalPopulation = z.infer<typeof TotalPopulationSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/d23d5.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
index b8b946d..6039b5f 100644
--- a/base/typescript-zod/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
@@ -16,11 +16,11 @@ export const ResultSchema = z.object({
 export type Result = z.infer<typeof ResultSchema>;
 
 export const TopLevelSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "facets": FacetsSchema,
-    "limit": z.number(),
+    "limit": z.number().int(),
     "next": z.string(),
-    "offset": z.number(),
+    "offset": z.number().int(),
     "previous": z.boolean(),
     "results": z.array(ResultSchema),
 });
diff --git a/base/typescript-zod/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
index 8f1b21f..35bf7e8 100644
--- a/base/typescript-zod/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/dc44f.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
index b40eede..70f6b9e 100644
--- a/base/typescript-zod/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
@@ -117,7 +117,7 @@ export type Ruling = z.infer<typeof RulingSchema>;
 
 export const CardSchema = z.object({
     "artist": z.string(),
-    "cmc": z.number(),
+    "cmc": z.number().int(),
     "colorIdentity": z.array(ColorIdentitySchema).optional(),
     "colors": z.array(ColorSchema).optional(),
     "flavor": z.string().optional(),
@@ -127,7 +127,7 @@ export const CardSchema = z.object({
     "legalities": z.array(LegalityElementSchema),
     "manaCost": z.string().optional(),
     "mciNumber": z.string().optional(),
-    "multiverseid": z.number(),
+    "multiverseid": z.number().int(),
     "name": z.string(),
     "originalText": z.string().optional(),
     "originalType": z.string(),
@@ -142,7 +142,7 @@ export const CardSchema = z.object({
     "toughness": z.string().optional(),
     "type": z.string(),
     "types": z.array(TypeSchema),
-    "variations": z.array(z.number()).optional(),
+    "variations": z.array(z.number().int()).optional(),
 });
 export type Card = z.infer<typeof CardSchema>;
 
@@ -153,7 +153,7 @@ export const TopLevelSchema = z.object({
     "code": z.string(),
     "gathererCode": z.string(),
     "magicCardsInfoCode": z.string(),
-    "mkm_id": z.number(),
+    "mkm_id": z.number().int(),
     "mkm_name": z.string(),
     "name": z.string(),
     "releaseDate": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
index b40eede..70f6b9e 100644
--- a/base/typescript-zod/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
@@ -117,7 +117,7 @@ export type Ruling = z.infer<typeof RulingSchema>;
 
 export const CardSchema = z.object({
     "artist": z.string(),
-    "cmc": z.number(),
+    "cmc": z.number().int(),
     "colorIdentity": z.array(ColorIdentitySchema).optional(),
     "colors": z.array(ColorSchema).optional(),
     "flavor": z.string().optional(),
@@ -127,7 +127,7 @@ export const CardSchema = z.object({
     "legalities": z.array(LegalityElementSchema),
     "manaCost": z.string().optional(),
     "mciNumber": z.string().optional(),
-    "multiverseid": z.number(),
+    "multiverseid": z.number().int(),
     "name": z.string(),
     "originalText": z.string().optional(),
     "originalType": z.string(),
@@ -142,7 +142,7 @@ export const CardSchema = z.object({
     "toughness": z.string().optional(),
     "type": z.string(),
     "types": z.array(TypeSchema),
-    "variations": z.array(z.number()).optional(),
+    "variations": z.array(z.number().int()).optional(),
 });
 export type Card = z.infer<typeof CardSchema>;
 
@@ -153,7 +153,7 @@ export const TopLevelSchema = z.object({
     "code": z.string(),
     "gathererCode": z.string(),
     "magicCardsInfoCode": z.string(),
-    "mkm_id": z.number(),
+    "mkm_id": z.number().int(),
     "mkm_name": z.string(),
     "name": z.string(),
     "releaseDate": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/dec3a.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/dec3a.json/default/TopLevel.ts
index e7ad305..431d8e3 100644
--- a/base/typescript-zod/test/inputs/json/misc/dec3a.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/dec3a.json/default/TopLevel.ts
@@ -3,14 +3,14 @@ import * as z from "zod";
 
 export const ResponseInfoSchema = z.object({
     "developerMessage": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type ResponseInfo = z.infer<typeof ResponseInfoSchema>;
 
 export const ResultsetSchema = z.object({
-    "count": z.number(),
-    "page": z.number(),
-    "pagesize": z.number(),
+    "count": z.number().int(),
+    "page": z.number().int(),
+    "pagesize": z.number().int(),
 });
 export type Resultset = z.infer<typeof ResultsetSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/df957.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/df957.json/default/TopLevel.ts
index 39f2537..3daf6ff 100644
--- a/base/typescript-zod/test/inputs/json/misc/df957.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/df957.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/e0ac7.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/e0ac7.json/default/TopLevel.ts
index e5d7a3a..89b927c 100644
--- a/base/typescript-zod/test/inputs/json/misc/e0ac7.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/e0ac7.json/default/TopLevel.ts
@@ -63,14 +63,14 @@ export type User = z.infer<typeof UserSchema>;
 export const MetaSchema = z.object({
     "msg": z.string(),
     "response_id": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const PaginationSchema = z.object({
-    "count": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "count": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Pagination = z.infer<typeof PaginationSchema>;
 
@@ -109,7 +109,7 @@ export const DatumSchema = z.object({
     "id": z.string(),
     "images": ImagesSchema,
     "import_datetime": z.string(),
-    "is_indexable": z.number(),
+    "is_indexable": z.number().int(),
     "rating": RatingSchema,
     "slug": z.string(),
     "source": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/e2915.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/e2915.json/default/TopLevel.ts
index 0c9b67a..3f9a93b 100644
--- a/base/typescript-zod/test/inputs/json/misc/e2915.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/e2915.json/default/TopLevel.ts
@@ -110,7 +110,7 @@ export const ResultsSchema = z.object({
 export type Results = z.infer<typeof ResultsSchema>;
 
 export const QuerySchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "created": z.coerce.date(),
     "lang": z.string(),
     "results": ResultsSchema,
diff --git a/base/typescript-zod/test/inputs/json/misc/e8a0b.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/e8a0b.json/default/TopLevel.ts
index e0ff31d..b8a003b 100644
--- a/base/typescript-zod/test/inputs/json/misc/e8a0b.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/e8a0b.json/default/TopLevel.ts
@@ -7,12 +7,12 @@ export const CountrySchema = z.enum([
 export type Country = z.infer<typeof CountrySchema>;
 
 export const TopLevelElementSchema = z.object({
-    "age": z.number(),
+    "age": z.number().int(),
     "country": CountrySchema,
-    "females": z.number(),
-    "males": z.number(),
-    "total": z.number(),
-    "year": z.number(),
+    "females": z.number().int(),
+    "males": z.number().int(),
+    "total": z.number().int(),
+    "year": z.number().int(),
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/e8b04.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/e8b04.json/default/TopLevel.ts
index 40b37f1..ad37265 100644
--- a/base/typescript-zod/test/inputs/json/misc/e8b04.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/e8b04.json/default/TopLevel.ts
@@ -159,7 +159,7 @@ export const SelectSchema = z.object({
 export type Select = z.infer<typeof SelectSchema>;
 
 export const TableColumnIdSchema = z.object({
-    "2819740": z.number(),
+    "2819740": z.number().int(),
 });
 export type TableColumnId = z.infer<typeof TableColumnIdSchema>;
 
@@ -170,7 +170,7 @@ export const PurpleVisibleSchema = z.object({
 export type PurpleVisible = z.infer<typeof PurpleVisibleSchema>;
 
 export const FieldSchema = z.object({
-    "tableColumnId": z.number(),
+    "tableColumnId": z.number().int(),
     "type": FieldTypeSchema,
 });
 export type Field = z.infer<typeof FieldSchema>;
@@ -194,7 +194,7 @@ export const OwnerSchema = z.object({
     "displayName": z.string(),
     "flags": z.array(z.string()).optional(),
     "id": z.string(),
-    "lastNotificationSeenAt": z.number().optional(),
+    "lastNotificationSeenAt": z.number().int().optional(),
     "profileImageUrlLarge": z.string().optional(),
     "profileImageUrlMedium": z.string().optional(),
     "profileImageUrlSmall": z.string().optional(),
@@ -205,7 +205,7 @@ export const OwnerSchema = z.object({
 export type Owner = z.infer<typeof OwnerSchema>;
 
 export const RatingsSchema = z.object({
-    "rating": z.number(),
+    "rating": z.number().int(),
 });
 export type Ratings = z.infer<typeof RatingsSchema>;
 
@@ -226,10 +226,10 @@ export type CustomFields = z.infer<typeof CustomFieldsSchema>;
 export const ChildMetadataSchema = z.object({
     "customValues": z.array(z.string()).optional(),
     "freeform": z.boolean().optional(),
-    "includeAuto": z.number().optional(),
+    "includeAuto": z.number().int().optional(),
     "operator": MetadataOperatorSchema.optional(),
     "tableColumnId": TableColumnIdSchema.optional(),
-    "unifiedVersion": z.number().optional(),
+    "unifiedVersion": z.number().int().optional(),
 });
 export type ChildMetadata = z.infer<typeof ChildMetadataSchema>;
 
@@ -311,45 +311,45 @@ export const TopLevelMetadataSchema = z.object({
 export type TopLevelMetadata = z.infer<typeof TopLevelMetadataSchema>;
 
 export const TopLevelElementSchema = z.object({
-    "averageRating": z.number(),
+    "averageRating": z.number().int(),
     "category": z.string().optional(),
-    "createdAt": z.number(),
+    "createdAt": z.number().int(),
     "description": z.string().optional(),
     "displayType": DisplayTypeSchema.optional(),
-    "downloadCount": z.number(),
+    "downloadCount": z.number().int(),
     "flags": z.array(TopLevelFlagSchema).optional(),
     "grants": z.array(GrantSchema),
     "hideFromCatalog": z.boolean(),
     "hideFromDataJson": z.boolean(),
     "id": z.string(),
-    "indexUpdatedAt": z.number().optional(),
+    "indexUpdatedAt": z.number().int().optional(),
     "locale": z.string(),
     "metadata": TopLevelMetadataSchema,
     "moderationStatus": z.boolean().optional(),
     "modifyingViewUid": ModifyingViewUidSchema.optional(),
     "name": z.string(),
     "newBackend": z.boolean(),
-    "numberOfComments": z.number(),
-    "oid": z.number(),
+    "numberOfComments": z.number().int(),
+    "oid": z.number().int(),
     "owner": OwnerSchema,
     "provenance": ProvenanceSchema,
     "publicationAppendEnabled": z.boolean(),
-    "publicationDate": z.number().optional(),
-    "publicationGroup": z.number(),
+    "publicationDate": z.number().int().optional(),
+    "publicationGroup": z.number().int(),
     "publicationStage": PublicationStageSchema,
     "ratings": RatingsSchema.optional(),
     "resourceName": z.string().optional(),
     "rights": z.array(RightSchema),
     "rowClass": z.string().optional(),
-    "rowIdentifierColumnId": z.number().optional(),
-    "rowsUpdatedAt": z.number().optional(),
+    "rowIdentifierColumnId": z.number().int().optional(),
+    "rowsUpdatedAt": z.number().int().optional(),
     "rowsUpdatedBy": RowsUpdatedBySchema.optional(),
     "tableAuthor": TableAuthorSchema,
-    "tableId": z.number(),
+    "tableId": z.number().int(),
     "tags": z.array(z.string()).optional(),
-    "totalTimesRated": z.number(),
-    "viewCount": z.number(),
-    "viewLastModified": z.number(),
+    "totalTimesRated": z.number().int(),
+    "viewCount": z.number().int(),
+    "viewLastModified": z.number().int(),
     "viewType": ViewTypeSchema,
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/f3edf.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/f3edf.json/default/TopLevel.ts
index e0ff31d..b8a003b 100644
--- a/base/typescript-zod/test/inputs/json/misc/f3edf.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/f3edf.json/default/TopLevel.ts
@@ -7,12 +7,12 @@ export const CountrySchema = z.enum([
 export type Country = z.infer<typeof CountrySchema>;
 
 export const TopLevelElementSchema = z.object({
-    "age": z.number(),
+    "age": z.number().int(),
     "country": CountrySchema,
-    "females": z.number(),
-    "males": z.number(),
-    "total": z.number(),
-    "year": z.number(),
+    "females": z.number().int(),
+    "males": z.number().int(),
+    "total": z.number().int(),
+    "year": z.number().int(),
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/f466a.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/f466a.json/default/TopLevel.ts
index e0ff31d..b8a003b 100644
--- a/base/typescript-zod/test/inputs/json/misc/f466a.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/f466a.json/default/TopLevel.ts
@@ -7,12 +7,12 @@ export const CountrySchema = z.enum([
 export type Country = z.infer<typeof CountrySchema>;
 
 export const TopLevelElementSchema = z.object({
-    "age": z.number(),
+    "age": z.number().int(),
     "country": CountrySchema,
-    "females": z.number(),
-    "males": z.number(),
-    "total": z.number(),
-    "year": z.number(),
+    "females": z.number().int(),
+    "males": z.number().int(),
+    "total": z.number().int(),
+    "year": z.number().int(),
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/f6a65.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/f6a65.json/default/TopLevel.ts
index 7f02e3f..519ba6f 100644
--- a/base/typescript-zod/test/inputs/json/misc/f6a65.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/f6a65.json/default/TopLevel.ts
@@ -73,14 +73,14 @@ export type User = z.infer<typeof UserSchema>;
 export const MetaSchema = z.object({
     "msg": z.string(),
     "response_id": z.string(),
-    "status": z.number(),
+    "status": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const PaginationSchema = z.object({
-    "count": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "count": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Pagination = z.infer<typeof PaginationSchema>;
 
@@ -119,7 +119,7 @@ export const DatumSchema = z.object({
     "id": z.string(),
     "images": ImagesSchema,
     "import_datetime": z.string(),
-    "is_indexable": z.number(),
+    "is_indexable": z.number().int(),
     "rating": RatingSchema,
     "slug": z.string(),
     "source": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/misc/f74d5.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/f74d5.json/default/TopLevel.ts
index 698146c..d77285a 100644
--- a/base/typescript-zod/test/inputs/json/misc/f74d5.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/f74d5.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export const TypeNameSchema = z.enum([
 export type TypeName = z.infer<typeof TypeNameSchema>;
 
 export const TopSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "item": z.string(),
 });
 export type Top = z.infer<typeof TopSchema>;
@@ -45,8 +45,8 @@ export type Owner = z.infer<typeof OwnerSchema>;
 export const CachedContentsSchema = z.object({
     "average": z.string().optional(),
     "largest": z.string(),
-    "non_null": z.number(),
-    "null": z.number(),
+    "non_null": z.number().int(),
+    "null": z.number().int(),
     "smallest": z.string(),
     "sum": z.string().optional(),
     "top": z.array(TopSchema),
@@ -64,12 +64,12 @@ export const ColumnSchema = z.object({
     "fieldName": z.string(),
     "flags": z.array(z.string()).optional(),
     "format": QuerySchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
-    "position": z.number(),
+    "position": z.number().int(),
     "renderTypeName": TypeNameSchema,
-    "tableColumnId": z.number().optional(),
-    "width": z.number().optional(),
+    "tableColumnId": z.number().int().optional(),
+    "width": z.number().int().optional(),
 });
 export type Column = z.infer<typeof ColumnSchema>;
 
@@ -83,42 +83,42 @@ export const MetadataSchema = z.object({
 export type Metadata = z.infer<typeof MetadataSchema>;
 
 export const ViewSchema = z.object({
-    "averageRating": z.number(),
+    "averageRating": z.number().int(),
     "category": z.string(),
     "columns": z.array(ColumnSchema),
-    "createdAt": z.number(),
+    "createdAt": z.number().int(),
     "displayType": z.string(),
-    "downloadCount": z.number(),
+    "downloadCount": z.number().int(),
     "flags": z.array(z.string()),
     "grants": z.array(GrantSchema),
     "hideFromCatalog": z.boolean(),
     "hideFromDataJson": z.boolean(),
     "id": z.string(),
-    "indexUpdatedAt": z.number(),
+    "indexUpdatedAt": z.number().int(),
     "license": LicenseSchema,
     "licenseId": z.string(),
     "locale": z.string(),
     "metadata": MetadataSchema,
     "name": z.string(),
     "newBackend": z.boolean(),
-    "numberOfComments": z.number(),
-    "oid": z.number(),
+    "numberOfComments": z.number().int(),
+    "oid": z.number().int(),
     "owner": OwnerSchema,
     "provenance": z.string(),
     "publicationAppendEnabled": z.boolean(),
-    "publicationDate": z.number(),
-    "publicationGroup": z.number(),
+    "publicationDate": z.number().int(),
+    "publicationGroup": z.number().int(),
     "publicationStage": z.string(),
     "query": QuerySchema,
     "rights": z.array(z.string()),
     "rowClass": z.string(),
-    "rowsUpdatedAt": z.number(),
+    "rowsUpdatedAt": z.number().int(),
     "rowsUpdatedBy": z.string(),
     "tableAuthor": OwnerSchema,
-    "tableId": z.number(),
-    "totalTimesRated": z.number(),
-    "viewCount": z.number(),
-    "viewLastModified": z.number(),
+    "tableId": z.number().int(),
+    "totalTimesRated": z.number().int(),
+    "viewCount": z.number().int(),
+    "viewLastModified": z.number().int(),
     "viewType": z.string(),
 });
 export type View = z.infer<typeof ViewSchema>;
@@ -129,7 +129,7 @@ export const MetaSchema = z.object({
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const TopLevelSchema = z.object({
-    "data": z.array(z.array(z.union([z.number(), z.string()]))),
+    "data": z.array(z.array(z.union([z.number().int(), z.string()]))),
     "meta": MetaSchema,
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/f974d.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/f974d.json/default/TopLevel.ts
index f6fbdc2..d2c18e8 100644
--- a/base/typescript-zod/test/inputs/json/misc/f974d.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/f974d.json/default/TopLevel.ts
@@ -2,10 +2,10 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "block_index": z.number(),
+    "block_index": z.number().int(),
     "hash": z.string(),
-    "height": z.number(),
-    "time": z.number(),
-    "txIndexes": z.array(z.number()),
+    "height": z.number().int(),
+    "time": z.number().int(),
+    "txIndexes": z.array(z.number().int()),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/faff5.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/faff5.json/default/TopLevel.ts
index 76cc8bc..447f181 100644
--- a/base/typescript-zod/test/inputs/json/misc/faff5.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/faff5.json/default/TopLevel.ts
@@ -2,8 +2,8 @@ import * as z from "zod";
 
 
 export const ResponseSchema = z.object({
-    "player_count": z.number(),
-    "result": z.number(),
+    "player_count": z.number().int(),
+    "result": z.number().int(),
 });
 export type Response = z.infer<typeof ResponseSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/misc/fcca3.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/fcca3.json/default/TopLevel.ts
index 0c19651..3a57a8c 100644
--- a/base/typescript-zod/test/inputs/json/misc/fcca3.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/fcca3.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export const TypeNameSchema = z.enum([
 export type TypeName = z.infer<typeof TypeNameSchema>;
 
 export const TopSchema = z.object({
-    "count": z.number(),
+    "count": z.number().int(),
     "item": z.string(),
 });
 export type Top = z.infer<typeof TopSchema>;
@@ -65,13 +65,13 @@ export const DisclaimersSchema = z.object({
 export type Disclaimers = z.infer<typeof DisclaimersSchema>;
 
 export const TableColumnIdSchema = z.object({
-    "703610": z.number(),
+    "703610": z.number().int(),
 });
 export type TableColumnId = z.infer<typeof TableColumnIdSchema>;
 
 export const FilterConditionMetadataSchema = z.object({
     "advanced": z.boolean(),
-    "unifiedVersion": z.number(),
+    "unifiedVersion": z.number().int(),
 });
 export type FilterConditionMetadata = z.infer<typeof FilterConditionMetadataSchema>;
 
@@ -99,7 +99,7 @@ export const OwnerSchema = z.object({
 export type Owner = z.infer<typeof OwnerSchema>;
 
 export const ExpressionSchema = z.object({
-    "columnId": z.number(),
+    "columnId": z.number().int(),
     "type": z.string(),
 });
 export type Expression = z.infer<typeof ExpressionSchema>;
@@ -107,8 +107,8 @@ export type Expression = z.infer<typeof ExpressionSchema>;
 export const CachedContentsSchema = z.object({
     "average": z.string().optional(),
     "largest": z.string(),
-    "non_null": z.number(),
-    "null": z.number(),
+    "non_null": z.number().int(),
+    "null": z.number().int(),
     "smallest": z.string(),
     "sum": z.string().optional(),
     "top": z.array(TopSchema),
@@ -153,12 +153,12 @@ export const ColumnSchema = z.object({
     "fieldName": z.string(),
     "flags": z.array(z.string()).optional(),
     "format": FormatSchema,
-    "id": z.number(),
+    "id": z.number().int(),
     "name": z.string(),
-    "position": z.number(),
+    "position": z.number().int(),
     "renderTypeName": TypeNameSchema,
-    "tableColumnId": z.number().optional(),
-    "width": z.number().optional(),
+    "tableColumnId": z.number().int().optional(),
+    "width": z.number().int().optional(),
 });
 export type Column = z.infer<typeof ColumnSchema>;
 
@@ -196,41 +196,41 @@ export type ViewMetadata = z.infer<typeof ViewMetadataSchema>;
 
 export const ViewSchema = z.object({
     "attribution": z.string(),
-    "averageRating": z.number(),
+    "averageRating": z.number().int(),
     "category": z.string(),
     "columns": z.array(ColumnSchema),
-    "createdAt": z.number(),
+    "createdAt": z.number().int(),
     "description": z.string(),
     "displayType": z.string(),
-    "downloadCount": z.number(),
+    "downloadCount": z.number().int(),
     "flags": z.array(z.string()),
     "grants": z.array(GrantSchema),
     "hideFromCatalog": z.boolean(),
     "hideFromDataJson": z.boolean(),
     "id": z.string(),
-    "indexUpdatedAt": z.number(),
+    "indexUpdatedAt": z.number().int(),
     "locale": z.string(),
     "metadata": ViewMetadataSchema,
     "name": z.string(),
     "newBackend": z.boolean(),
-    "numberOfComments": z.number(),
-    "oid": z.number(),
+    "numberOfComments": z.number().int(),
+    "oid": z.number().int(),
     "owner": OwnerSchema,
     "provenance": z.string(),
     "publicationAppendEnabled": z.boolean(),
-    "publicationDate": z.number(),
-    "publicationGroup": z.number(),
+    "publicationDate": z.number().int(),
+    "publicationGroup": z.number().int(),
     "publicationStage": z.string(),
     "query": QuerySchema,
     "rights": z.array(z.string()),
-    "rowsUpdatedAt": z.number(),
+    "rowsUpdatedAt": z.number().int(),
     "rowsUpdatedBy": z.string(),
     "tableAuthor": OwnerSchema,
-    "tableId": z.number(),
+    "tableId": z.number().int(),
     "tags": z.array(z.string()),
-    "totalTimesRated": z.number(),
-    "viewCount": z.number(),
-    "viewLastModified": z.number(),
+    "totalTimesRated": z.number().int(),
+    "viewCount": z.number().int(),
+    "viewLastModified": z.number().int(),
     "viewType": z.string(),
 });
 export type View = z.infer<typeof ViewSchema>;
@@ -241,7 +241,7 @@ export const MetaSchema = z.object({
 export type Meta = z.infer<typeof MetaSchema>;
 
 export const TopLevelSchema = z.object({
-    "data": z.array(z.array(z.union([z.null(), z.number(), z.string()]))),
+    "data": z.array(z.array(z.union([z.null(), z.number().int(), z.string()]))),
     "meta": MetaSchema,
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/misc/fd329.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/misc/fd329.json/default/TopLevel.ts
index 31293f9..b71dac0 100644
--- a/base/typescript-zod/test/inputs/json/misc/fd329.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/misc/fd329.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export type Datum = z.infer<typeof DatumSchema>;
 
 export const DescriptionSchema = z.object({
     "base_period": z.string(),
-    "missing": z.number(),
+    "missing": z.number().int(),
     "title": z.string(),
     "units": z.string(),
 });
diff --git a/base/typescript-zod/test/inputs/json/priority/bug790.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/bug790.json/default/TopLevel.ts
index 2ee6667..c5f76b2 100644
--- a/base/typescript-zod/test/inputs/json/priority/bug790.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/bug790.json/default/TopLevel.ts
@@ -14,12 +14,12 @@ export type TopLevel = {
 export const TopLevelSchema: z.ZodType<TopLevel> = z.lazy(() =>
     z.object({
         "children_data": z.array(TopLevelSchema),
-        "id": z.number(),
+        "id": z.number().int(),
         "is_active": z.boolean(),
-        "level": z.number(),
+        "level": z.number().int(),
         "name": z.string(),
-        "parent_id": z.number(),
-        "position": z.number(),
-        "product_count": z.number(),
+        "parent_id": z.number().int(),
+        "position": z.number().int(),
+        "product_count": z.number().int(),
     })
 );
diff --git a/base/typescript-zod/test/inputs/json/priority/bug863.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/bug863.json/default/TopLevel.ts
index 8d66c9e..b22a547 100644
--- a/base/typescript-zod/test/inputs/json/priority/bug863.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/bug863.json/default/TopLevel.ts
@@ -47,62 +47,62 @@ export const SexSchema = z.enum([
 export type Sex = z.infer<typeof SexSchema>;
 
 export const PurpleTopLevelSchema = z.object({
-    "ALIENLEVEL": z.number(),
+    "ALIENLEVEL": z.number().int(),
     "BREED": BreedSchema,
-    "CHAR_DIMENSION": z.number(),
-    "CHAR_INSTANCE": z.number(),
+    "CHAR_DIMENSION": z.number().int(),
+    "CHAR_INSTANCE": z.number().int(),
     "DEFENDER_RANK_TITLE": z.string(),
     "FIRSTNAME": FirstnameSchema,
-    "HEADID": z.number(),
+    "HEADID": z.number().int(),
     "LASTNAME": LastnameSchema,
-    "LEVELX": z.number(),
+    "LEVELX": z.number().int(),
     "NAME": z.string(),
     "PROF": z.string(),
     "PROF_TITLE": z.string(),
-    "PVPRATING": z.number(),
+    "PVPRATING": z.number().int(),
     "PVPTITLE": PvptitleSchema,
-    "RANK": z.number(),
+    "RANK": z.number().int(),
     "RANK_TITLE": RankTitleSchema,
     "SEX": SexSchema,
 });
 export type PurpleTopLevel = z.infer<typeof PurpleTopLevelSchema>;
 
 export const FluffyTopLevelSchema = z.object({
-    "ADVENTURERCOUNT": z.number(),
-    "AGENTCOUNT": z.number(),
-    "ATROXCOUNT": z.number(),
+    "ADVENTURERCOUNT": z.number().int(),
+    "AGENTCOUNT": z.number().int(),
+    "ATROXCOUNT": z.number().int(),
     "AVGLVL": z.number(),
-    "BTCOUNT": z.number(),
+    "BTCOUNT": z.number().int(),
     "DESCRIPTION": z.string(),
-    "DOCTORCOUNT": z.number(),
-    "ENFCOUNT": z.number(),
-    "ENGINEEERCOUNT": z.number(),
-    "FEMALECOUNT": z.number(),
-    "FIXERCOUNT": z.number(),
+    "DOCTORCOUNT": z.number().int(),
+    "ENFCOUNT": z.number().int(),
+    "ENGINEEERCOUNT": z.number().int(),
+    "FEMALECOUNT": z.number().int(),
+    "FIXERCOUNT": z.number().int(),
     "GOVERNINGNAME": z.string(),
     "HISTORY": z.string(),
-    "KEEPERCOUNT": z.number(),
-    "MACOUNT": z.number(),
-    "MALECOUNT": z.number(),
-    "MAXLVL": z.number(),
-    "METACOUNT": z.number(),
-    "MINLVL": z.number(),
-    "MONSTERCOUNT": z.number(),
+    "KEEPERCOUNT": z.number().int(),
+    "MACOUNT": z.number().int(),
+    "MALECOUNT": z.number().int(),
+    "MAXLVL": z.number().int(),
+    "METACOUNT": z.number().int(),
+    "MINLVL": z.number().int(),
+    "MONSTERCOUNT": z.number().int(),
     "NAME": z.string(),
-    "NANOCOUNT": z.number(),
-    "NANORACECOUNT": z.number(),
-    "NEUTERCOUNT": z.number(),
-    "NUMMEMBERS": z.number(),
+    "NANOCOUNT": z.number().int(),
+    "NANORACECOUNT": z.number().int(),
+    "NEUTERCOUNT": z.number().int(),
+    "NUMMEMBERS": z.number().int(),
     "OBJECTIVE": z.string(),
-    "OPIFEXCOUNT": z.number(),
-    "ORG_DIMENSION": z.number(),
-    "ORG_INSTANCE": z.number(),
-    "SHADECOUNT": z.number(),
-    "SIDE": z.number(),
+    "OPIFEXCOUNT": z.number().int(),
+    "ORG_DIMENSION": z.number().int(),
+    "ORG_INSTANCE": z.number().int(),
+    "SHADECOUNT": z.number().int(),
+    "SIDE": z.number().int(),
     "SIDE_NAME": z.string(),
-    "SOLIDERCOUNT": z.number(),
-    "SOLITUSCOUNT": z.number(),
-    "TRADERCOUNT": z.number(),
+    "SOLIDERCOUNT": z.number().int(),
+    "SOLITUSCOUNT": z.number().int(),
+    "TRADERCOUNT": z.number().int(),
 });
 export type FluffyTopLevel = z.infer<typeof FluffyTopLevelSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/priority/coin-pairs.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/coin-pairs.json/default/TopLevel.ts
index b3fb316..1f3197a 100644
--- a/base/typescript-zod/test/inputs/json/priority/coin-pairs.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/coin-pairs.json/default/TopLevel.ts
@@ -2,11 +2,11 @@ import * as z from "zod";
 
 
 export const PairSchema = z.object({
-    "decimal_places": z.number(),
+    "decimal_places": z.number().int(),
     "fee": z.number(),
-    "hidden": z.number(),
-    "max_amount": z.number(),
-    "max_price": z.number(),
+    "hidden": z.number().int(),
+    "max_amount": z.number().int(),
+    "max_price": z.number().int(),
     "min_amount": z.number(),
     "min_price": z.number(),
     "min_total": z.number(),
@@ -15,6 +15,6 @@ export type Pair = z.infer<typeof PairSchema>;
 
 export const TopLevelSchema = z.object({
     "pairs": z.record(z.string(), PairSchema),
-    "server_time": z.number(),
+    "server_time": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/combinations1.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/combinations1.json/default/TopLevel.ts
index 0c72a97..a261f3c 100644
--- a/base/typescript-zod/test/inputs/json/priority/combinations1.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/combinations1.json/default/TopLevel.ts
@@ -32,7 +32,7 @@ export const ChemotherapeuticClassSchema = z.object({
     "catharticalness": z.number().optional(),
     "caulis": z.null().optional(),
     "chalcus": z.null().optional(),
-    "Chirotherium": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
     "disdiapason": z.string().optional(),
     "enteradenological": z.null().optional(),
     "homocerc": z.boolean().optional(),
@@ -56,7 +56,7 @@ export type ChemotherapeuticClass = z.infer<typeof ChemotherapeuticClassSchema>;
 
 export const CimeliaClassSchema = z.object({
     "catharticalness": z.number(),
-    "Chirotherium": z.number(),
+    "Chirotherium": z.number().int(),
     "disdiapason": z.string(),
     "homocerc": z.boolean(),
     "nonbookish": z.null(),
@@ -67,7 +67,7 @@ export const CoadjustClassSchema = z.object({
     "amidosulphonal": z.null().optional(),
     "Benny": z.null().optional(),
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
     "disdiapason": z.string().optional(),
     "ensnare": z.null().optional(),
     "homocerc": z.boolean().optional(),
@@ -266,7 +266,7 @@ export const HemocoeleClassSchema = z.object({
     "autobiographic": z.null().optional(),
     "berat": z.null().optional(),
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
     "disdiapason": z.string().optional(),
     "disproportionably": z.null().optional(),
     "erythrite": z.null().optional(),
@@ -293,7 +293,7 @@ export const InteracinarSchema = z.object({
     "assapan": z.number(),
     "benefactorship": z.boolean(),
     "triseriatim": z.string(),
-    "tubbing": z.number(),
+    "tubbing": z.number().int(),
     "untrimmed": z.null(),
 });
 export type Interacinar = z.infer<typeof InteracinarSchema>;
@@ -301,46 +301,46 @@ export type Interacinar = z.infer<typeof InteracinarSchema>;
 export const TopLevelSchema = z.object({
     "centrodesmose": z.string(),
     "cerograph": z.array(z.union([z.null(), CerographClassSchema, z.string()])),
-    "chemotherapeutics": z.array(z.union([ChemotherapeuticClassSchema, z.number()])),
-    "cimelia": z.array(z.union([z.null(), z.array(z.number()), CimeliaClassSchema])),
-    "citrated": z.number(),
+    "chemotherapeutics": z.array(z.union([ChemotherapeuticClassSchema, z.number().int()])),
+    "cimelia": z.array(z.union([z.null(), z.array(z.number().int()), CimeliaClassSchema])),
+    "citrated": z.number().int(),
     "clinodome": z.array(z.union([z.number(), z.string()])),
     "coadjust": z.array(z.union([CoadjustClassSchema, z.number()])),
-    "consilience": z.array(z.union([z.number(), z.record(z.string(), z.number())])),
-    "constructor": z.array(z.union([z.boolean(), z.record(z.string(), z.union([z.null(), z.number()]))])),
-    "continuative": z.array(z.union([z.record(z.string(), z.number()), z.string()])),
-    "credulity": z.array(z.union([CredulityClassSchema, z.number(), z.string()])),
-    "creviced": z.array(z.union([z.boolean(), z.record(z.string(), z.number()), z.string()])),
-    "cubiculum": z.array(z.array(z.union([z.null(), z.number()]))),
+    "consilience": z.array(z.union([z.number(), z.record(z.string(), z.number().int())])),
+    "constructor": z.array(z.union([z.boolean(), z.record(z.string(), z.union([z.null(), z.number().int()]))])),
+    "continuative": z.array(z.union([z.record(z.string(), z.number().int()), z.string()])),
+    "credulity": z.array(z.union([CredulityClassSchema, z.number().int(), z.string()])),
+    "creviced": z.array(z.union([z.boolean(), z.record(z.string(), z.number().int()), z.string()])),
+    "cubiculum": z.array(z.array(z.union([z.null(), z.number().int()]))),
     "deruralize": z.array(z.union([z.array(z.null()), z.boolean(), DeruralizeClassSchema])),
-    "diaereses": z.array(z.union([z.array(z.number()), z.boolean(), DiaereseClassSchema])),
+    "diaereses": z.array(z.union([z.array(z.number().int()), z.boolean(), DiaereseClassSchema])),
     "dissolution": z.array(z.union([z.null(), z.array(z.null())])),
     "downstroke": z.array(z.union([z.array(z.null()), z.boolean(), z.string()])),
     "electrotautomerism": z.array(z.union([z.null(), z.number()])),
-    "eleutheromania": z.array(z.union([z.number(), z.record(z.string(), z.number()), z.string()])),
+    "eleutheromania": z.array(z.union([z.number(), z.record(z.string(), z.number().int()), z.string()])),
     "encrust": EncrustSchema,
-    "entomoid": z.array(z.union([CimeliaClassSchema, z.number()])),
-    "epipaleolithic": z.array(z.union([z.array(z.number()), z.number()])),
+    "entomoid": z.array(z.union([CimeliaClassSchema, z.number().int()])),
+    "epipaleolithic": z.array(z.union([z.array(z.number().int()), z.number()])),
     "expropriable": z.array(z.union([z.array(z.null()), CimeliaClassSchema, z.number()])),
     "faggingly": z.array(z.union([FagginglyClassSchema, z.number()])),
     "fenks": z.array(z.union([FenkClassSchema, z.string()])),
     "flagmaking": z.array(z.union([z.boolean(), FlagmakingClassSchema, z.number()])),
-    "fluorometer": z.array(z.union([z.null(), z.number(), z.string()])),
-    "fulsome": z.array(z.union([z.null(), z.number()])),
-    "fuzzy": z.array(z.union([z.number(), z.record(z.string(), z.union([z.null(), z.number()]))])),
-    "gardenwards": z.array(z.union([z.array(z.number()), z.boolean(), z.string()])),
-    "generalissimo": z.array(z.union([z.null(), z.boolean(), z.record(z.string(), z.number())])),
-    "habeas": z.array(z.union([z.null(), z.record(z.string(), z.number())])),
+    "fluorometer": z.array(z.union([z.null(), z.number().int(), z.string()])),
+    "fulsome": z.array(z.union([z.null(), z.number().int()])),
+    "fuzzy": z.array(z.union([z.number().int(), z.record(z.string(), z.union([z.null(), z.number().int()]))])),
+    "gardenwards": z.array(z.union([z.array(z.number().int()), z.boolean(), z.string()])),
+    "generalissimo": z.array(z.union([z.null(), z.boolean(), z.record(z.string(), z.number().int())])),
+    "habeas": z.array(z.union([z.null(), z.record(z.string(), z.number().int())])),
     "hemicrystalline": z.array(z.union([CimeliaClassSchema, z.string()])),
-    "hemocoele": z.array(z.union([z.array(z.number()), HemocoeleClassSchema])),
+    "hemocoele": z.array(z.union([z.array(z.number().int()), HemocoeleClassSchema])),
     "hoister": z.array(z.union([z.null(), CimeliaClassSchema, z.string()])),
     "hyperpiesis": z.array(z.union([z.null(), z.array(z.null()), CimeliaClassSchema])),
     "hyppish": z.array(z.union([z.null(), z.boolean(), z.string()])),
-    "idealizer": z.array(z.union([z.array(z.null()), CimeliaClassSchema, z.number()])),
-    "incrustator": z.array(z.union([z.array(z.number()), z.number(), z.string()])),
+    "idealizer": z.array(z.union([z.array(z.null()), CimeliaClassSchema, z.number().int()])),
+    "incrustator": z.array(z.union([z.array(z.number().int()), z.number().int(), z.string()])),
     "intentiveness": z.array(z.union([CimeliaClassSchema, z.number(), z.string()])),
     "interacinar": InteracinarSchema,
-    "intercorrelation": z.array(z.union([z.null(), z.array(z.number())])),
-    "jacutinga": z.array(z.union([z.array(z.number()), z.record(z.string(), z.union([z.null(), z.number()]))])),
+    "intercorrelation": z.array(z.union([z.null(), z.array(z.number().int())])),
+    "jacutinga": z.array(z.union([z.array(z.number().int()), z.record(z.string(), z.union([z.null(), z.number().int()]))])),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/combinations2.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/combinations2.json/default/TopLevel.ts
index 7fbecd5..c94cf89 100644
--- a/base/typescript-zod/test/inputs/json/priority/combinations2.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/combinations2.json/default/TopLevel.ts
@@ -27,7 +27,7 @@ export type AlleviateClass = z.infer<typeof AlleviateClassSchema>;
 
 export const RebeccaSchema = z.object({
     "catharticalness": z.number(),
-    "Chirotherium": z.number(),
+    "Chirotherium": z.number().int(),
     "disdiapason": z.string(),
     "homocerc": z.boolean(),
     "nonbookish": z.null(),
@@ -35,31 +35,31 @@ export const RebeccaSchema = z.object({
 export type Rebecca = z.infer<typeof RebeccaSchema>;
 
 export const AmphithyronSchema = z.object({
-    "akroasis": z.number().optional(),
-    "antiphonical": z.number().optional(),
-    "basebred": z.number().optional(),
+    "akroasis": z.number().int().optional(),
+    "antiphonical": z.number().int().optional(),
+    "basebred": z.number().int().optional(),
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
-    "conductometric": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
+    "conductometric": z.number().int().optional(),
     "disdiapason": z.string().optional(),
-    "ensilation": z.number().optional(),
-    "eyebolt": z.number().optional(),
-    "fistulated": z.number().optional(),
-    "heteropod": z.number().optional(),
+    "ensilation": z.number().int().optional(),
+    "eyebolt": z.number().int().optional(),
+    "fistulated": z.number().int().optional(),
+    "heteropod": z.number().int().optional(),
     "homocerc": z.boolean().optional(),
-    "Juniperus": z.number().optional(),
-    "labyrinthically": z.number().optional(),
-    "martyrization": z.number().optional(),
-    "mispolicy": z.number().optional(),
-    "multipara": z.number().optional(),
-    "Nazirite": z.number().optional(),
+    "Juniperus": z.number().int().optional(),
+    "labyrinthically": z.number().int().optional(),
+    "martyrization": z.number().int().optional(),
+    "mispolicy": z.number().int().optional(),
+    "multipara": z.number().int().optional(),
+    "Nazirite": z.number().int().optional(),
     "nonbookish": z.null().optional(),
-    "possessorial": z.number().optional(),
-    "shamed": z.number().optional(),
-    "shelfworn": z.number().optional(),
-    "stagnum": z.number().optional(),
-    "Those": z.number().optional(),
-    "undecimal": z.number().optional(),
+    "possessorial": z.number().int().optional(),
+    "shamed": z.number().int().optional(),
+    "shelfworn": z.number().int().optional(),
+    "stagnum": z.number().int().optional(),
+    "Those": z.number().int().optional(),
+    "undecimal": z.number().int().optional(),
 });
 export type Amphithyron = z.infer<typeof AmphithyronSchema>;
 
@@ -136,31 +136,31 @@ export const ChytridiaceaeClassSchema = z.object({
 export type ChytridiaceaeClass = z.infer<typeof ChytridiaceaeClassSchema>;
 
 export const DiscordiaClassSchema = z.object({
-    "Altaic": z.number().optional(),
-    "amoristic": z.number().optional(),
-    "blennophthalmia": z.number().optional(),
+    "Altaic": z.number().int().optional(),
+    "amoristic": z.number().int().optional(),
+    "blennophthalmia": z.number().int().optional(),
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
-    "disciplinability": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
+    "disciplinability": z.number().int().optional(),
     "disdiapason": z.string().optional(),
-    "goofer": z.number().optional(),
+    "goofer": z.number().int().optional(),
     "homocerc": z.boolean().optional(),
-    "laryngograph": z.number().optional(),
-    "leucitis": z.number().optional(),
-    "lymphocyst": z.number().optional(),
-    "microcosmology": z.number().optional(),
-    "nauseation": z.number().optional(),
+    "laryngograph": z.number().int().optional(),
+    "leucitis": z.number().int().optional(),
+    "lymphocyst": z.number().int().optional(),
+    "microcosmology": z.number().int().optional(),
+    "nauseation": z.number().int().optional(),
     "nonbookish": z.null().optional(),
-    "Patarin": z.number().optional(),
-    "preliberal": z.number().optional(),
-    "prettifier": z.number().optional(),
-    "rangework": z.number().optional(),
-    "redient": z.number().optional(),
-    "subfusiform": z.number().optional(),
-    "suicidical": z.number().optional(),
-    "swow": z.number().optional(),
-    "wastrel": z.number().optional(),
-    "wingle": z.number().optional(),
+    "Patarin": z.number().int().optional(),
+    "preliberal": z.number().int().optional(),
+    "prettifier": z.number().int().optional(),
+    "rangework": z.number().int().optional(),
+    "redient": z.number().int().optional(),
+    "subfusiform": z.number().int().optional(),
+    "suicidical": z.number().int().optional(),
+    "swow": z.number().int().optional(),
+    "wastrel": z.number().int().optional(),
+    "wingle": z.number().int().optional(),
 });
 export type DiscordiaClass = z.infer<typeof DiscordiaClassSchema>;
 
@@ -189,31 +189,31 @@ export const GryphosaurusClassSchema = z.object({
 export type GryphosaurusClass = z.infer<typeof GryphosaurusClassSchema>;
 
 export const LaviniaClassSchema = z.object({
-    "agitable": z.number().optional(),
-    "asininity": z.number().optional(),
-    "benefiter": z.number().optional(),
-    "bronzelike": z.number().optional(),
+    "agitable": z.number().int().optional(),
+    "asininity": z.number().int().optional(),
+    "benefiter": z.number().int().optional(),
+    "bronzelike": z.number().int().optional(),
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
-    "cholesteatomatous": z.number().optional(),
-    "deprivement": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
+    "cholesteatomatous": z.number().int().optional(),
+    "deprivement": z.number().int().optional(),
     "disdiapason": z.string().optional(),
-    "flippantness": z.number().optional(),
-    "fogproof": z.number().optional(),
+    "flippantness": z.number().int().optional(),
+    "fogproof": z.number().int().optional(),
     "homocerc": z.boolean().optional(),
-    "merrymeeting": z.number().optional(),
+    "merrymeeting": z.number().int().optional(),
     "nonbookish": z.null().optional(),
-    "overcareful": z.number().optional(),
-    "panaris": z.number().optional(),
-    "preacceptance": z.number().optional(),
-    "quinoxaline": z.number().optional(),
-    "sig": z.number().optional(),
-    "superconfusion": z.number().optional(),
-    "Tacana": z.number().optional(),
-    "tillotter": z.number().optional(),
-    "tranquillize": z.number().optional(),
-    "unquestionable": z.number().optional(),
-    "uproute": z.number().optional(),
+    "overcareful": z.number().int().optional(),
+    "panaris": z.number().int().optional(),
+    "preacceptance": z.number().int().optional(),
+    "quinoxaline": z.number().int().optional(),
+    "sig": z.number().int().optional(),
+    "superconfusion": z.number().int().optional(),
+    "Tacana": z.number().int().optional(),
+    "tillotter": z.number().int().optional(),
+    "tranquillize": z.number().int().optional(),
+    "unquestionable": z.number().int().optional(),
+    "uproute": z.number().int().optional(),
 });
 export type LaviniaClass = z.infer<typeof LaviniaClassSchema>;
 
@@ -242,49 +242,49 @@ export const OskarClassSchema = z.object({
 export type OskarClass = z.infer<typeof OskarClassSchema>;
 
 export const TopLevelSchema = z.object({
-    "Abranchiata": z.array(z.union([z.null(), z.array(z.number()), z.number()])),
-    "academe": z.array(z.union([z.array(z.number()), z.number(), z.record(z.string(), z.number())])),
-    "acquirable": z.array(z.union([z.array(z.union([z.null(), z.number()])), z.record(z.string(), z.number())])),
+    "Abranchiata": z.array(z.union([z.null(), z.array(z.number().int()), z.number().int()])),
+    "academe": z.array(z.union([z.array(z.number().int()), z.number().int(), z.record(z.string(), z.number().int())])),
+    "acquirable": z.array(z.union([z.array(z.union([z.null(), z.number().int()])), z.record(z.string(), z.number().int())])),
     "aerometry": z.array(z.union([z.boolean(), z.number()])),
-    "alexin": z.array(z.union([z.array(z.number()), z.boolean()])),
-    "alleviate": z.array(z.union([z.array(z.union([z.null(), z.number()])), AlleviateClassSchema])),
-    "amaas": z.array(z.union([z.boolean(), RebeccaSchema, z.number()])),
+    "alexin": z.array(z.union([z.array(z.number().int()), z.boolean()])),
+    "alleviate": z.array(z.union([z.array(z.union([z.null(), z.number().int()])), AlleviateClassSchema])),
+    "amaas": z.array(z.union([z.boolean(), RebeccaSchema, z.number().int()])),
     "ambassage": z.array(z.union([z.array(z.null()), z.string()])),
     "amphithyron": z.array(z.union([z.null(), AmphithyronSchema])),
     "Andriana": z.array(z.union([z.null(), z.string()])),
-    "ankee": z.array(z.union([z.array(z.number()), AnkeeClassSchema, z.number()])),
-    "annihilator": z.array(z.union([z.null(), z.record(z.string(), z.union([z.null(), z.number()]))])),
+    "ankee": z.array(z.union([z.array(z.number().int()), AnkeeClassSchema, z.number().int()])),
+    "annihilator": z.array(z.union([z.null(), z.record(z.string(), z.union([z.null(), z.number().int()]))])),
     "annulose": z.null(),
-    "Ansarie": z.array(z.union([z.null(), z.array(z.number()), AnsarieClassSchema])),
-    "aphasia": z.array(z.union([z.array(z.number()), z.number()])),
+    "Ansarie": z.array(z.union([z.null(), z.array(z.number().int()), AnsarieClassSchema])),
+    "aphasia": z.array(z.union([z.array(z.number().int()), z.number().int()])),
     "asprawl": z.array(z.union([z.number(), z.string()])),
     "attractive": z.array(z.union([z.null(), z.boolean()])),
-    "barksome": z.record(z.string(), z.number()),
+    "barksome": z.record(z.string(), z.number().int()),
     "bedesman": z.array(z.union([z.boolean(), z.number(), z.string()])),
-    "belard": z.array(z.union([z.array(z.number()), RebeccaSchema, z.number()])),
-    "bocking": z.array(z.union([z.array(z.number()), z.boolean(), z.record(z.string(), z.number())])),
-    "brawlingly": z.array(z.union([z.array(z.null()), z.record(z.string(), z.union([z.null(), z.number()]))])),
-    "brookie": z.array(z.union([z.array(z.number()), RebeccaSchema])),
+    "belard": z.array(z.union([z.array(z.number().int()), RebeccaSchema, z.number()])),
+    "bocking": z.array(z.union([z.array(z.number().int()), z.boolean(), z.record(z.string(), z.number().int())])),
+    "brawlingly": z.array(z.union([z.array(z.null()), z.record(z.string(), z.union([z.null(), z.number().int()]))])),
+    "brookie": z.array(z.union([z.array(z.number().int()), RebeccaSchema])),
     "bumboatman": z.array(z.union([z.null(), z.array(z.null()), z.string()])),
     "bystreet": z.array(z.null()),
-    "calaverite": z.array(z.union([z.array(z.number()), z.string()])),
-    "catallactic": z.array(z.union([z.array(z.null()), z.boolean(), z.record(z.string(), z.number())])),
-    "cemental": z.array(z.union([z.array(z.number()), z.number(), z.record(z.string(), z.number())])),
+    "calaverite": z.array(z.union([z.array(z.number().int()), z.string()])),
+    "catallactic": z.array(z.union([z.array(z.null()), z.boolean(), z.record(z.string(), z.number().int())])),
+    "cemental": z.array(z.union([z.array(z.number().int()), z.number(), z.record(z.string(), z.number().int())])),
     "Chytridiaceae": z.array(z.union([z.null(), z.boolean(), ChytridiaceaeClassSchema])),
-    "Discordia": z.array(z.union([z.array(z.number()), DiscordiaClassSchema])),
-    "Endomyces": z.array(z.union([z.number(), z.string()])),
-    "Epinephelidae": z.array(z.union([z.boolean(), z.number(), z.string()])),
-    "Eupatorium": z.array(z.union([z.array(z.null()), z.record(z.string(), z.number())])),
-    "Gryphosaurus": z.array(z.union([z.array(z.number()), GryphosaurusClassSchema, z.string()])),
-    "Koryak": z.array(z.union([z.record(z.string(), z.union([z.null(), z.number()])), z.string()])),
+    "Discordia": z.array(z.union([z.array(z.number().int()), DiscordiaClassSchema])),
+    "Endomyces": z.array(z.union([z.number().int(), z.string()])),
+    "Epinephelidae": z.array(z.union([z.boolean(), z.number().int(), z.string()])),
+    "Eupatorium": z.array(z.union([z.array(z.null()), z.record(z.string(), z.number().int())])),
+    "Gryphosaurus": z.array(z.union([z.array(z.number().int()), GryphosaurusClassSchema, z.string()])),
+    "Koryak": z.array(z.union([z.record(z.string(), z.union([z.null(), z.number().int()])), z.string()])),
     "Lavinia": z.array(z.union([LaviniaClassSchema, z.string()])),
-    "Oskar": z.array(z.union([z.array(z.number()), OskarClassSchema])),
-    "Rebecca": z.array(z.union([RebeccaSchema, z.number(), z.string()])),
-    "Rhomboganoidei": z.array(z.union([z.array(z.number()), RebeccaSchema, z.string()])),
+    "Oskar": z.array(z.union([z.array(z.number().int()), OskarClassSchema])),
+    "Rebecca": z.array(z.union([RebeccaSchema, z.number().int(), z.string()])),
+    "Rhomboganoidei": z.array(z.union([z.array(z.number().int()), RebeccaSchema, z.string()])),
     "Rigsmal": z.boolean(),
     "Ruellia": z.array(z.union([z.boolean(), RebeccaSchema, z.string()])),
-    "School": z.array(z.union([z.null(), z.number(), z.record(z.string(), z.number())])),
-    "Shakespearolater": z.array(z.union([z.array(z.number()), z.number(), z.string()])),
+    "School": z.array(z.union([z.null(), z.number().int(), z.record(z.string(), z.number().int())])),
+    "Shakespearolater": z.array(z.union([z.array(z.number().int()), z.number(), z.string()])),
     "Svan": z.array(z.number()),
     "Wayao": z.record(z.string(), z.number()),
 });
diff --git a/base/typescript-zod/test/inputs/json/priority/combinations3.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/combinations3.json/default/TopLevel.ts
index 7c6cdba..f997a6c 100644
--- a/base/typescript-zod/test/inputs/json/priority/combinations3.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/combinations3.json/default/TopLevel.ts
@@ -75,77 +75,77 @@ export type LandlubberlyClass = z.infer<typeof LandlubberlyClassSchema>;
 
 export const LupusClassSchema = z.object({
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
-    "Chlorioninae": z.number().optional(),
-    "Corvinae": z.number().optional(),
-    "Crassina": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
+    "Chlorioninae": z.number().int().optional(),
+    "Corvinae": z.number().int().optional(),
+    "Crassina": z.number().int().optional(),
     "disdiapason": z.string().optional(),
-    "exiguity": z.number().optional(),
-    "farcist": z.number().optional(),
-    "holographical": z.number().optional(),
+    "exiguity": z.number().int().optional(),
+    "farcist": z.number().int().optional(),
+    "holographical": z.number().int().optional(),
     "homocerc": z.boolean().optional(),
-    "ichthyophagan": z.number().optional(),
-    "implacable": z.number().optional(),
+    "ichthyophagan": z.number().int().optional(),
+    "implacable": z.number().int().optional(),
     "nonbookish": z.null().optional(),
-    "outshiner": z.number().optional(),
-    "overweather": z.number().optional(),
-    "protonegroid": z.number().optional(),
-    "shallowish": z.number().optional(),
-    "snoke": z.number().optional(),
-    "snout": z.number().optional(),
-    "surveillance": z.number().optional(),
-    "threshingtime": z.number().optional(),
-    "Thysanocarpus": z.number().optional(),
-    "unsignificantly": z.number().optional(),
-    "unsnap": z.number().optional(),
-    "vendible": z.number().optional(),
+    "outshiner": z.number().int().optional(),
+    "overweather": z.number().int().optional(),
+    "protonegroid": z.number().int().optional(),
+    "shallowish": z.number().int().optional(),
+    "snoke": z.number().int().optional(),
+    "snout": z.number().int().optional(),
+    "surveillance": z.number().int().optional(),
+    "threshingtime": z.number().int().optional(),
+    "Thysanocarpus": z.number().int().optional(),
+    "unsignificantly": z.number().int().optional(),
+    "unsnap": z.number().int().optional(),
+    "vendible": z.number().int().optional(),
 });
 export type LupusClass = z.infer<typeof LupusClassSchema>;
 
 export const MaslinSchema = z.object({
-    "Alicant": z.number().optional(),
+    "Alicant": z.number().int().optional(),
     "antiatonement": z.null().optional(),
-    "anticorrosive": z.number().optional(),
+    "anticorrosive": z.number().int().optional(),
     "aphidozer": z.null().optional(),
     "Bakuninist": z.null().optional(),
-    "be": z.number().optional(),
+    "be": z.number().int().optional(),
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
-    "chub": z.number().optional(),
-    "cuprosilicon": z.number().optional(),
-    "curtailedly": z.number().optional(),
-    "dellenite": z.number().optional(),
-    "Dimitry": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
+    "chub": z.number().int().optional(),
+    "cuprosilicon": z.number().int().optional(),
+    "curtailedly": z.number().int().optional(),
+    "dellenite": z.number().int().optional(),
+    "Dimitry": z.number().int().optional(),
     "disdiapason": z.string().optional(),
     "edifying": z.null().optional(),
-    "ethmoiditis": z.number().optional(),
+    "ethmoiditis": z.number().int().optional(),
     "gastralgy": z.null().optional(),
-    "goatherd": z.number().optional(),
-    "hammerdress": z.number().optional(),
+    "goatherd": z.number().int().optional(),
+    "hammerdress": z.number().int().optional(),
     "hangfire": z.null().optional(),
     "homocerc": z.boolean().optional(),
-    "lacunosity": z.number().optional(),
+    "lacunosity": z.number().int().optional(),
     "longiloquence": z.null().optional(),
-    "mameliere": z.number().optional(),
+    "mameliere": z.number().int().optional(),
     "motherless": z.null().optional(),
     "nonbookish": z.null().optional(),
     "noncorrodible": z.null().optional(),
     "nonsensicality": z.null().optional(),
-    "oafishly": z.number().optional(),
+    "oafishly": z.number().int().optional(),
     "pfund": z.null().optional(),
     "preadvisory": z.null().optional(),
     "retroflexed": z.null().optional(),
-    "saccharulmic": z.number().optional(),
-    "scowlful": z.number().optional(),
+    "saccharulmic": z.number().int().optional(),
+    "scowlful": z.number().int().optional(),
     "secluded": z.null().optional(),
     "slackage": z.null().optional(),
-    "sphaeridial": z.number().optional(),
+    "sphaeridial": z.number().int().optional(),
     "spondulics": z.null().optional(),
-    "subsecive": z.number().optional(),
+    "subsecive": z.number().int().optional(),
     "swellmobsman": z.null().optional(),
-    "trachyglossate": z.number().optional(),
+    "trachyglossate": z.number().int().optional(),
     "trialogue": z.null().optional(),
-    "unassuaged": z.number().optional(),
+    "unassuaged": z.number().int().optional(),
     "ungross": z.null().optional(),
     "unjudiciously": z.null().optional(),
 });
@@ -153,7 +153,7 @@ export type Maslin = z.infer<typeof MaslinSchema>;
 
 export const MonaziteClassSchema = z.object({
     "catharticalness": z.number(),
-    "Chirotherium": z.number(),
+    "Chirotherium": z.number().int(),
     "disdiapason": z.string(),
     "homocerc": z.boolean(),
     "nonbookish": z.null(),
@@ -164,7 +164,7 @@ export const MonotheisticallyClassSchema = z.object({
     "blaspheme": z.null().optional(),
     "catharticalness": z.number().optional(),
     "celiosalpingectomy": z.null().optional(),
-    "Chirotherium": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
     "consummativeness": z.null().optional(),
     "disdiapason": z.string().optional(),
     "egestive": z.null().optional(),
@@ -192,7 +192,7 @@ export type MonotheisticallyClass = z.infer<typeof MonotheisticallyClassSchema>;
 export const NoncontributingSchema = z.object({
     "estevin": z.string(),
     "jolterhead": z.number(),
-    "sauternes": z.number(),
+    "sauternes": z.number().int(),
     "sparsely": z.boolean(),
     "unrequested": z.null(),
 });
@@ -247,38 +247,38 @@ export const OutrivalClassSchema = z.object({
 export type OutrivalClass = z.infer<typeof OutrivalClassSchema>;
 
 export const PiaculumClassSchema = z.object({
-    "alada": z.number().optional(),
-    "amphistomous": z.number().optional(),
-    "boysenberry": z.number().optional(),
+    "alada": z.number().int().optional(),
+    "amphistomous": z.number().int().optional(),
+    "boysenberry": z.number().int().optional(),
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
-    "decardinalize": z.number().optional(),
-    "discouragement": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
+    "decardinalize": z.number().int().optional(),
+    "discouragement": z.number().int().optional(),
     "disdiapason": z.string().optional(),
-    "doitrified": z.number().optional(),
-    "hexaspermous": z.number().optional(),
+    "doitrified": z.number().int().optional(),
+    "hexaspermous": z.number().int().optional(),
     "homocerc": z.boolean().optional(),
-    "insinking": z.number().optional(),
-    "loathfulness": z.number().optional(),
-    "miasmatical": z.number().optional(),
-    "neurofibril": z.number().optional(),
+    "insinking": z.number().int().optional(),
+    "loathfulness": z.number().int().optional(),
+    "miasmatical": z.number().int().optional(),
+    "neurofibril": z.number().int().optional(),
     "nonbookish": z.null().optional(),
-    "phonendoscope": z.number().optional(),
-    "pilferment": z.number().optional(),
-    "predismissory": z.number().optional(),
-    "preinscription": z.number().optional(),
-    "quotative": z.number().optional(),
-    "sienna": z.number().optional(),
-    "thorax": z.number().optional(),
-    "yachting": z.number().optional(),
-    "Zipper": z.number().optional(),
+    "phonendoscope": z.number().int().optional(),
+    "pilferment": z.number().int().optional(),
+    "predismissory": z.number().int().optional(),
+    "preinscription": z.number().int().optional(),
+    "quotative": z.number().int().optional(),
+    "sienna": z.number().int().optional(),
+    "thorax": z.number().int().optional(),
+    "yachting": z.number().int().optional(),
+    "Zipper": z.number().int().optional(),
 });
 export type PiaculumClass = z.infer<typeof PiaculumClassSchema>;
 
 export const PneumoceleSchema = z.object({
     "Carbonarism": z.null().optional(),
     "catharticalness": z.number().optional(),
-    "Chirotherium": z.number().optional(),
+    "Chirotherium": z.number().int().optional(),
     "cineolic": z.null().optional(),
     "cobbly": z.null().optional(),
     "conchyliferous": z.null().optional(),
@@ -354,11 +354,11 @@ export type PrefreshmanClass = z.infer<typeof PrefreshmanClassSchema>;
 
 export const TopLevelSchema = z.object({
     "juror": z.array(z.union([z.boolean(), JurorClassSchema])),
-    "kongoni": z.array(z.union([z.array(z.number()), z.record(z.string(), z.number())])),
+    "kongoni": z.array(z.union([z.array(z.number().int()), z.record(z.string(), z.number().int())])),
     "ladronism": z.array(z.union([LadronismClassSchema, z.number(), z.string()])),
-    "landlubberly": z.array(z.union([z.boolean(), LandlubberlyClassSchema, z.number()])),
-    "listener": z.array(z.union([z.array(z.null()), z.number()])),
-    "lupus": z.array(z.union([LupusClassSchema, z.number()])),
+    "landlubberly": z.array(z.union([z.boolean(), LandlubberlyClassSchema, z.number().int()])),
+    "listener": z.array(z.union([z.array(z.null()), z.number().int()])),
+    "lupus": z.array(z.union([LupusClassSchema, z.number().int()])),
     "maslin": z.array(MaslinSchema),
     "monazite": z.array(z.union([MonaziteClassSchema, z.number()])),
     "monoliteral": z.array(z.union([z.array(z.null()), z.boolean()])),
@@ -366,34 +366,34 @@ export const TopLevelSchema = z.object({
     "montage": z.array(z.union([z.array(z.null()), z.number(), z.string()])),
     "moralness": z.array(z.union([z.null(), z.array(z.null()), z.number()])),
     "mowra": z.array(z.union([z.null(), MonaziteClassSchema])),
-    "mulishly": z.array(z.union([z.null(), z.array(z.number()), z.number()])),
-    "myoscope": z.array(z.union([z.array(z.null()), z.boolean(), z.number()])),
-    "nach": z.array(z.union([z.null(), z.array(z.union([z.null(), z.number()]))])),
+    "mulishly": z.array(z.union([z.null(), z.array(z.number().int()), z.number()])),
+    "myoscope": z.array(z.union([z.array(z.null()), z.boolean(), z.number().int()])),
+    "nach": z.array(z.union([z.null(), z.array(z.union([z.null(), z.number().int()]))])),
     "neuromastic": z.array(z.union([z.array(z.null()), z.number()])),
     "noncontributing": z.array(NoncontributingSchema),
-    "nonnervous": z.array(z.union([z.boolean(), z.number()])),
+    "nonnervous": z.array(z.union([z.boolean(), z.number().int()])),
     "nonvaluation": z.array(z.union([z.array(z.null()), z.boolean(), z.number()])),
     "occupationalist": z.array(z.union([z.null(), z.array(z.null()), OccupationalistClassSchema])),
     "outrival": z.array(z.union([z.null(), OutrivalClassSchema, z.number()])),
-    "paleographically": z.array(z.union([z.number(), z.record(z.string(), z.union([z.null(), z.number()]))])),
-    "pamphletwise": z.array(z.union([z.number(), z.record(z.string(), z.number()), z.string()])),
+    "paleographically": z.array(z.union([z.number(), z.record(z.string(), z.union([z.null(), z.number().int()]))])),
+    "pamphletwise": z.array(z.union([z.number().int(), z.record(z.string(), z.number().int()), z.string()])),
     "pediatrics": z.array(z.union([z.null(), z.boolean(), z.number()])),
     "perceptive": z.array(z.boolean()),
     "piaculum": z.array(z.union([PiaculumClassSchema, z.number()])),
     "piccadilly": z.array(z.union([z.null(), z.number(), z.string()])),
     "piffler": z.array(z.union([z.array(z.null()), MonaziteClassSchema])),
-    "pithful": z.array(z.union([z.null(), z.boolean(), z.number()])),
-    "placuntitis": z.array(z.union([z.number(), z.record(z.string(), z.number())])),
-    "plectopterous": z.array(z.union([z.number(), z.record(z.string(), z.number())])),
+    "pithful": z.array(z.union([z.null(), z.boolean(), z.number().int()])),
+    "placuntitis": z.array(z.union([z.number().int(), z.record(z.string(), z.number().int())])),
+    "plectopterous": z.array(z.union([z.number(), z.record(z.string(), z.number().int())])),
     "pneumocele": z.array(z.union([z.null(), PneumoceleSchema])),
     "poliorcetic": z.array(z.union([z.boolean(), MonaziteClassSchema])),
-    "poormaster": z.array(z.union([z.null(), z.array(z.number()), z.record(z.string(), z.number())])),
-    "potwhisky": z.array(z.union([z.null(), PotwhiskyClassSchema, z.number()])),
+    "poormaster": z.array(z.union([z.null(), z.array(z.number().int()), z.record(z.string(), z.number().int())])),
+    "potwhisky": z.array(z.union([z.null(), PotwhiskyClassSchema, z.number().int()])),
     "practicalizer": z.array(z.union([z.array(z.null()), MonaziteClassSchema, z.string()])),
     "prefreshman": z.array(z.union([z.array(z.null()), PrefreshmanClassSchema, z.string()])),
     "prehensility": z.array(z.union([z.array(z.null()), z.boolean(), MonaziteClassSchema])),
-    "prevoidance": z.array(z.union([z.array(z.number()), MonaziteClassSchema, z.number()])),
-    "probant": z.array(z.record(z.string(), z.union([z.null(), z.number()]))),
-    "protext": z.array(z.union([z.array(z.number()), z.boolean(), MonaziteClassSchema])),
+    "prevoidance": z.array(z.union([z.array(z.number().int()), MonaziteClassSchema, z.number().int()])),
+    "probant": z.array(z.record(z.string(), z.union([z.null(), z.number().int()]))),
+    "protext": z.array(z.union([z.array(z.number().int()), z.boolean(), MonaziteClassSchema])),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/direct-recursive.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/direct-recursive.json/default/TopLevel.ts
index eb9db41..b52907b 100644
--- a/base/typescript-zod/test/inputs/json/priority/direct-recursive.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/direct-recursive.json/default/TopLevel.ts
@@ -12,7 +12,7 @@ export const TopLevelSchema: z.ZodType<TopLevel> = z.lazy(() =>
     z.object({
         "also": TopLevelSchema.optional(),
         "bar": z.boolean(),
-        "foo": z.number(),
+        "foo": z.number().int(),
         "moo": z.number(),
         "quux": z.string(),
     })
diff --git a/base/typescript-zod/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.ts
index fe5a033..56c5837 100644
--- a/base/typescript-zod/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.ts
@@ -1,4 +1,4 @@
 import * as z from "zod";
 
-export const TopLevelSchema = z.array(z.number());
+export const TopLevelSchema = z.array(z.number().int());
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/list.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/list.json/default/TopLevel.ts
index b0e125f..cf83c66 100644
--- a/base/typescript-zod/test/inputs/json/priority/list.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/list.json/default/TopLevel.ts
@@ -7,7 +7,7 @@ export type TopLevel = {
 };
 export const TopLevelSchema: z.ZodType<TopLevel> = z.lazy(() =>
     z.object({
-        "data": z.number(),
+        "data": z.number().int(),
         "next": z.union([z.null(), TopLevelSchema]),
     })
 );
diff --git a/base/typescript-zod/test/inputs/json/priority/name-style.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/name-style.json/default/TopLevel.ts
index 722cd21..5e7cc6a 100644
--- a/base/typescript-zod/test/inputs/json/priority/name-style.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/name-style.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "anEasyOne": z.number(),
+    "anEasyOne": z.number().int(),
     "isMNISTLetter": z.boolean(),
     "JSONString": z.string(),
     "PrettyEasyToo": z.boolean(),
diff --git a/base/typescript-zod/test/inputs/json/priority/nested-objects.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/nested-objects.json/default/TopLevel.ts
index a01e7e7..14b7962 100644
--- a/base/typescript-zod/test/inputs/json/priority/nested-objects.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/nested-objects.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "a": z.record(z.string(), z.number()),
-    "b": z.record(z.string(), z.number()),
+    "a": z.record(z.string(), z.number().int()),
+    "b": z.record(z.string(), z.number().int()),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/no-classes.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/no-classes.json/default/TopLevel.ts
index 60fb18e..c377e76 100644
--- a/base/typescript-zod/test/inputs/json/priority/no-classes.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/no-classes.json/default/TopLevel.ts
@@ -1,4 +1,4 @@
 import * as z from "zod";
 
-export const TopLevelSchema = z.number();
+export const TopLevelSchema = z.number().int();
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/omit-empty.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/omit-empty.json/default/TopLevel.ts
index e40fffc..cfad005 100644
--- a/base/typescript-zod/test/inputs/json/priority/omit-empty.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/omit-empty.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const ResultSchema = z.object({
-    "age": z.number(),
+    "age": z.number().int(),
     "name": z.null().optional(),
 });
 export type Result = z.infer<typeof ResultSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/optional-union.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/optional-union.json/default/TopLevel.ts
index 0655ab4..5bc3a6d 100644
--- a/base/typescript-zod/test/inputs/json/priority/optional-union.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/optional-union.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelElementSchema = z.object({
-    "a": z.union([z.number(), z.string()]).optional(),
+    "a": z.union([z.number().int(), z.string()]).optional(),
 });
 export type TopLevelElement = z.infer<typeof TopLevelElementSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.ts
index bd2b1b1..2da0fa1 100644
--- a/base/typescript-zod/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.ts
@@ -7,6 +7,6 @@ export const MixedClassSchema = z.object({
 export type MixedClass = z.infer<typeof MixedClassSchema>;
 
 export const TopLevelSchema = z.object({
-    "mixed": z.array(z.union([z.null(), z.boolean(), MixedClassSchema, z.number(), z.string()])),
+    "mixed": z.array(z.union([z.null(), z.boolean(), MixedClassSchema, z.number().int(), z.string()])),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/php-validation.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/php-validation.json/default/TopLevel.ts
index 8a0e85d..a4f55d9 100644
--- a/base/typescript-zod/test/inputs/json/priority/php-validation.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/php-validation.json/default/TopLevel.ts
@@ -3,8 +3,8 @@ import * as z from "zod";
 
 export const TopLevelSchema = z.object({
     "boolean": z.boolean(),
-    "integer": z.number(),
-    "integers": z.array(z.number()),
+    "integer": z.number().int(),
+    "integers": z.array(z.number().int()),
     "number": z.number(),
     "string": z.string(),
 });
diff --git a/base/typescript-zod/test/inputs/json/priority/recursive.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/recursive.json/default/TopLevel.ts
index 46df144..54a99dd 100644
--- a/base/typescript-zod/test/inputs/json/priority/recursive.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/recursive.json/default/TopLevel.ts
@@ -19,9 +19,9 @@ export type FormatsClass = {
 export const FormatsClassSchema: z.ZodType<FormatsClass> = z.lazy(() =>
     z.object({
         "formats": z.array(FormatSchema).optional(),
-        "height": z.number(),
+        "height": z.number().int(),
         "url": z.string(),
-        "width": z.number(),
+        "width": z.number().int(),
     })
 );
 
@@ -37,7 +37,7 @@ export const CategoryThumbnailSchema = z.object({
 export type CategoryThumbnail = z.infer<typeof CategoryThumbnailSchema>;
 
 export const EonandyearSchema = z.object({
-    "lowestsetbit": z.number(),
+    "lowestsetbit": z.number().int(),
 });
 export type Eonandyear = z.infer<typeof EonandyearSchema>;
 
@@ -59,23 +59,23 @@ export const LinkElementSchema = z.object({
 export type LinkElement = z.infer<typeof LinkElementSchema>;
 
 export const DateClassSchema = z.object({
-    "day": z.number(),
+    "day": z.number().int(),
     "eonandyear": EonandyearSchema,
-    "hour": z.number(),
-    "millisecond": z.number(),
-    "minute": z.number(),
-    "month": z.number(),
-    "second": z.number(),
-    "timezone": z.number(),
+    "hour": z.number().int(),
+    "millisecond": z.number().int(),
+    "minute": z.number().int(),
+    "month": z.number().int(),
+    "second": z.number().int(),
+    "timezone": z.number().int(),
     "valid": z.boolean(),
     "xmlschematype": XmlschematypeSchema,
-    "year": z.number(),
+    "year": z.number().int(),
 });
 export type DateClass = z.infer<typeof DateClassSchema>;
 
 export const UseraverageratingSchema = z.object({
     "links": z.array(LinkElementSchema),
-    "numcomments": z.number(),
+    "numcomments": z.number().int(),
     "rating": z.string(),
 });
 export type Useraveragerating = z.infer<typeof UseraverageratingSchema>;
@@ -88,11 +88,11 @@ export type Specification = z.infer<typeof SpecificationSchema>;
 export const CategorySchema = z.object({
     "concatenatecategoryname": z.boolean(),
     "hasoffer": z.boolean(),
-    "id": z.number(),
+    "id": z.number().int(),
     "isfinal": z.boolean(),
     "links": z.array(LinkElementSchema),
     "name": z.string(),
-    "parentcategoryid": z.number(),
+    "parentcategoryid": z.number().int(),
     "thumbnail": CategoryThumbnailSchema,
 });
 export type Category = z.infer<typeof CategorySchema>;
@@ -100,9 +100,9 @@ export type Category = z.infer<typeof CategorySchema>;
 export const DetailsSchema = z.object({
     "applicationid": z.string(),
     "applicationversion": z.string(),
-    "code": z.number(),
+    "code": z.number().int(),
     "date": DateClassSchema,
-    "elapsedtime": z.number(),
+    "elapsedtime": z.number().int(),
     "message": z.string(),
     "status": z.string(),
 });
@@ -114,22 +114,22 @@ export const RatingSchema = z.object({
 export type Rating = z.infer<typeof RatingSchema>;
 
 export const ProductProductSchema = z.object({
-    "categoryid": z.number(),
+    "categoryid": z.number().int(),
     "currency": CurrencySchema,
     "eco": z.boolean(),
     "fulldescription": z.boolean(),
     "hasmetasearch": z.boolean(),
-    "id": z.number(),
+    "id": z.number().int(),
     "links": z.array(LinkElementSchema),
-    "numoffers": z.number(),
+    "numoffers": z.number().int(),
     "pricemax": z.string(),
     "pricemin": z.string(),
     "productname": z.string(),
-    "quantity": z.number(),
+    "quantity": z.number().int(),
     "rating": RatingSchema,
     "specification": SpecificationSchema,
     "thumbnail": FormatsClassSchema,
-    "totalsellers": z.number(),
+    "totalsellers": z.number().int(),
 });
 export type ProductProduct = z.infer<typeof ProductProductSchema>;
 
@@ -142,12 +142,12 @@ export const TopLevelSchema = z.object({
     "category": CategorySchema,
     "details": DetailsSchema,
     "match": z.string(),
-    "page": z.number(),
+    "page": z.number().int(),
     "product": z.array(ProductElementSchema),
     "schk": z.boolean(),
-    "totallooseoffers": z.number(),
-    "totalpages": z.number(),
-    "totalresultsavailable": z.number(),
-    "totalresultsreturned": z.number(),
+    "totallooseoffers": z.number().int(),
+    "totalpages": z.number().int(),
+    "totalresultsavailable": z.number().int(),
+    "totalresultsreturned": z.number().int(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.ts
index b3da32f..e03687a 100644
--- a/base/typescript-zod/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.ts
@@ -8,6 +8,6 @@ export type BoolInUnion = z.infer<typeof BoolInUnionSchema>;
 
 export const TopLevelSchema = z.object({
     "BoolInUnion": BoolInUnionSchema,
-    "union": z.array(z.union([z.boolean(), z.number()])),
+    "union": z.array(z.union([z.boolean(), z.number().int()])),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/unions.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/unions.json/default/TopLevel.ts
index acd6ec5..4962bb4 100644
--- a/base/typescript-zod/test/inputs/json/priority/unions.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/unions.json/default/TopLevel.ts
@@ -7,8 +7,8 @@ export const ZClassSchema = z.object({
 export type ZClass = z.infer<typeof ZClassSchema>;
 
 export const TopLevelSchema = z.object({
-    "x": z.array(z.union([z.null(), z.number(), z.string()])),
-    "y": z.array(z.union([z.null(), z.number()])),
-    "z": z.array(z.union([z.array(z.number()), ZClassSchema, z.number()])),
+    "x": z.array(z.union([z.null(), z.number().int(), z.string()])),
+    "y": z.array(z.union([z.null(), z.number().int()])),
+    "z": z.array(z.union([z.array(z.number().int()), ZClassSchema, z.number().int()])),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/priority/uuids.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/uuids.json/default/TopLevel.ts
index c299604..0a6f7d4 100644
--- a/base/typescript-zod/test/inputs/json/priority/uuids.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/uuids.json/default/TopLevel.ts
@@ -4,7 +4,7 @@ import * as z from "zod";
 export const TopLevelSchema = z.object({
     "booleanValue": z.boolean(),
     "doubleValue": z.number(),
-    "intValue": z.number(),
+    "intValue": z.number().int(),
     "stringValue": z.string(),
     "uuidValue": z.string(),
     "uuidValues": z.array(z.string()),
diff --git a/base/typescript-zod/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.ts
index f6fbdc2..d2c18e8 100644
--- a/base/typescript-zod/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.ts
@@ -2,10 +2,10 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "block_index": z.number(),
+    "block_index": z.number().int(),
     "hash": z.string(),
-    "height": z.number(),
-    "time": z.number(),
-    "txIndexes": z.array(z.number()),
+    "height": z.number().int(),
+    "time": z.number().int(),
+    "txIndexes": z.array(z.number().int()),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.ts
index 0bc7e32..7c21066 100644
--- a/base/typescript-zod/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.ts
@@ -7,14 +7,14 @@ export const DifferentThingClassSchema = z.object({
 export type DifferentThingClass = z.infer<typeof DifferentThingClassSchema>;
 
 export const PersonElementSchema = z.object({
-    "intOrString": z.union([z.number(), z.string()]),
+    "intOrString": z.union([z.number().int(), z.string()]),
     "name": z.string(),
     "optionalValue": z.boolean().optional(),
 });
 export type PersonElement = z.infer<typeof PersonElementSchema>;
 
 export const PurplePersonSchema = z.object({
-    "intOrString": z.number(),
+    "intOrString": z.number().int(),
     "name": z.string(),
 });
 export type PurplePerson = z.infer<typeof PurplePersonSchema>;
@@ -22,17 +22,17 @@ export type PurplePerson = z.infer<typeof PurplePersonSchema>;
 export const TopLevelSchema = z.object({
     "booleanValue": z.boolean(),
     "dateValue": z.string(),
-    "differentThings": z.array(z.union([DifferentThingClassSchema, z.number(), z.string()])),
+    "differentThings": z.array(z.union([DifferentThingClassSchema, z.number().int(), z.string()])),
     "doubleValue": z.number(),
-    "intValue": z.number(),
-    "mapValue": z.record(z.string(), z.union([z.null(), z.number()])),
+    "intValue": z.number().int(),
+    "mapValue": z.record(z.string(), z.union([z.null(), z.number().int()])),
     "name with spaces": z.null(),
     "nullValue": z.null(),
-    "nullableMapValue": z.record(z.string(), z.union([z.null(), z.number()])),
+    "nullableMapValue": z.record(z.string(), z.union([z.null(), z.number().int()])),
     "people": z.array(PersonElementSchema),
     "person": PurplePersonSchema,
     "stringValue": z.string(),
-    "tuples": z.array(z.array(z.union([z.number(), z.string()]))),
+    "tuples": z.array(z.array(z.union([z.number().int(), z.string()]))),
     "uuidValue": z.string(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/typescript-zod/test/inputs/json/samples/null-safe.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
index 227f952..12756cc 100644
--- a/base/typescript-zod/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
@@ -12,7 +12,7 @@ export const ItemSchema = z.object({
     "address": AddressSchema.optional(),
     "created_at": z.coerce.date().optional(),
     "name": z.string(),
-    "sex": z.union([z.null(), z.number()]),
+    "sex": z.union([z.null(), z.number().int()]),
 });
 export type Item = z.infer<typeof ItemSchema>;
 
diff --git a/base/typescript-zod/test/inputs/json/samples/pokedex.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/pokedex.json/default/TopLevel.ts
index 0e58285..2c10b3d 100644
--- a/base/typescript-zod/test/inputs/json/samples/pokedex.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/pokedex.json/default/TopLevel.ts
@@ -42,10 +42,10 @@ export type Evolution = z.infer<typeof EvolutionSchema>;
 export const PokemonSchema = z.object({
     "avg_spawns": z.number(),
     "candy": z.string(),
-    "candy_count": z.number().optional(),
+    "candy_count": z.number().int().optional(),
     "egg": EggSchema,
     "height": z.string(),
-    "id": z.number(),
+    "id": z.number().int(),
     "img": z.string(),
     "multipliers": z.union([z.null(), z.array(z.number())]),
     "name": z.string(),
diff --git a/base/typescript-zod/test/inputs/json/samples/reddit.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/reddit.json/default/TopLevel.ts
index 5f17e4f..6ab6785 100644
--- a/base/typescript-zod/test/inputs/json/samples/reddit.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/reddit.json/default/TopLevel.ts
@@ -57,9 +57,9 @@ export const MediaEmbedSchema = z.object({
 export type MediaEmbed = z.infer<typeof MediaEmbedSchema>;
 
 export const SourceSchema = z.object({
-    "height": z.number(),
+    "height": z.number().int(),
     "url": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Source = z.infer<typeof SourceSchema>;
 
@@ -103,13 +103,13 @@ export const ChildDataSchema = z.object({
     "can_mod_post": z.boolean(),
     "clicked": z.boolean(),
     "contest_mode": z.boolean(),
-    "created": z.number(),
-    "created_utc": z.number(),
+    "created": z.number().int(),
+    "created_utc": z.number().int(),
     "distinguished": z.union([z.null(), z.string()]),
     "domain": DomainSchema,
-    "downs": z.number(),
+    "downs": z.number().int(),
     "edited": z.boolean(),
-    "gilded": z.number(),
+    "gilded": z.number().int(),
     "hidden": z.boolean(),
     "hide_score": z.boolean(),
     "id": z.string(),
@@ -123,7 +123,7 @@ export const ChildDataSchema = z.object({
     "media_embed": MediaEmbedSchema,
     "mod_reports": z.array(z.any()),
     "name": z.string(),
-    "num_comments": z.number(),
+    "num_comments": z.number().int(),
     "num_reports": z.null(),
     "over_18": z.boolean(),
     "parent_whitelist_status": WhitelistStatusSchema,
@@ -134,7 +134,7 @@ export const ChildDataSchema = z.object({
     "removal_reason": z.null(),
     "report_reasons": z.null(),
     "saved": z.boolean(),
-    "score": z.number(),
+    "score": z.number().int(),
     "secure_media": z.null(),
     "secure_media_embed": MediaEmbedSchema,
     "selftext": z.string(),
@@ -147,10 +147,10 @@ export const ChildDataSchema = z.object({
     "subreddit_type": SubredditTypeSchema,
     "suggested_sort": z.null(),
     "thumbnail": z.string(),
-    "thumbnail_height": z.number(),
-    "thumbnail_width": z.number(),
+    "thumbnail_height": z.number().int(),
+    "thumbnail_width": z.number().int(),
     "title": z.string(),
-    "ups": z.number(),
+    "ups": z.number().int(),
     "url": z.string(),
     "user_reports": z.array(z.any()),
     "view_count": z.null(),
diff --git a/base/typescript-zod/test/inputs/json/samples/simple-object.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/simple-object.json/default/TopLevel.ts
index 48ce547..2750ff7 100644
--- a/base/typescript-zod/test/inputs/json/samples/simple-object.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/simple-object.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "date": z.number(),
+    "date": z.number().int(),
     "title": z.string(),
     "validity": z.boolean(),
 });
diff --git a/base/typescript-zod/test/inputs/json/samples/spotify-album.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/spotify-album.json/default/TopLevel.ts
index 9c21881..4cf3f5e 100644
--- a/base/typescript-zod/test/inputs/json/samples/spotify-album.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/spotify-album.json/default/TopLevel.ts
@@ -18,9 +18,9 @@ export const ExternalIdsSchema = z.object({
 export type ExternalIds = z.infer<typeof ExternalIdsSchema>;
 
 export const ImageSchema = z.object({
-    "height": z.number(),
+    "height": z.number().int(),
     "url": z.string(),
-    "width": z.number(),
+    "width": z.number().int(),
 });
 export type Image = z.infer<typeof ImageSchema>;
 
@@ -37,15 +37,15 @@ export type Artist = z.infer<typeof ArtistSchema>;
 export const ItemSchema = z.object({
     "artists": z.array(ArtistSchema),
     "available_markets": z.array(z.string()),
-    "disc_number": z.number(),
-    "duration_ms": z.number(),
+    "disc_number": z.number().int(),
+    "duration_ms": z.number().int(),
     "explicit": z.boolean(),
     "external_urls": ExternalUrlsSchema,
     "href": z.string(),
     "id": z.string(),
     "name": z.string(),
     "preview_url": z.string(),
-    "track_number": z.number(),
+    "track_number": z.number().int(),
     "type": z.string(),
     "uri": z.string(),
 });
@@ -54,11 +54,11 @@ export type Item = z.infer<typeof ItemSchema>;
 export const TracksSchema = z.object({
     "href": z.string(),
     "items": z.array(ItemSchema),
-    "limit": z.number(),
+    "limit": z.number().int(),
     "next": z.null(),
-    "offset": z.number(),
+    "offset": z.number().int(),
     "previous": z.null(),
-    "total": z.number(),
+    "total": z.number().int(),
 });
 export type Tracks = z.infer<typeof TracksSchema>;
 
@@ -74,7 +74,7 @@ export const TopLevelSchema = z.object({
     "id": z.string(),
     "images": z.array(ImageSchema),
     "name": z.string(),
-    "popularity": z.number(),
+    "popularity": z.number().int(),
     "release_date": z.string(),
     "release_date_precision": z.string(),
     "tracks": TracksSchema,
diff --git a/base/typescript-zod/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.ts
index 31293f9..b71dac0 100644
--- a/base/typescript-zod/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export type Datum = z.infer<typeof DatumSchema>;
 
 export const DescriptionSchema = z.object({
     "base_period": z.string(),
-    "missing": z.number(),
+    "missing": z.number().int(),
     "title": z.string(),
     "units": z.string(),
 });
diff --git a/base/typescript-zod/test/inputs/json/samples/us-senators.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
index 6255738..c090ecb 100644
--- a/base/typescript-zod/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
@@ -79,9 +79,9 @@ export const TitleSchema = z.enum([
 export type Title = z.infer<typeof TitleSchema>;
 
 export const MetaSchema = z.object({
-    "limit": z.number(),
-    "offset": z.number(),
-    "total_count": z.number(),
+    "limit": z.number().int(),
+    "offset": z.number().int(),
+    "total_count": z.number().int(),
 });
 export type Meta = z.infer<typeof MetaSchema>;
 
@@ -97,7 +97,7 @@ export type Extra = z.infer<typeof ExtraSchema>;
 export const PersonSchema = z.object({
     "bioguideid": z.string(),
     "birthday": z.string(),
-    "cspanid": z.number(),
+    "cspanid": z.number().int(),
     "firstname": z.string(),
     "gender": GenderSchema,
     "gender_label": GenderLabelSchema,
@@ -117,7 +117,7 @@ export type Person = z.infer<typeof PersonSchema>;
 
 export const ObjectElementSchema = z.object({
     "caucus": z.union([z.null(), PartySchema]),
-    "congress_numbers": z.array(z.number()),
+    "congress_numbers": z.array(z.number().int()),
     "current": z.boolean(),
     "description": z.string(),
     "district": z.null(),
