diff --git a/base/schema-typescript-effect-schema/test/inputs/schema/date-time-or-string.schema/default/TopLevel.ts b/head/schema-typescript-effect-schema/test/inputs/schema/date-time-or-string.schema/default/TopLevel.ts
index 58e5db3..8ae6d88 100644
--- a/base/schema-typescript-effect-schema/test/inputs/schema/date-time-or-string.schema/default/TopLevel.ts
+++ b/head/schema-typescript-effect-schema/test/inputs/schema/date-time-or-string.schema/default/TopLevel.ts
@@ -1,7 +1,12 @@
 import * as S from "effect/Schema";
 
 
+export const BarEnum = S.Literal(
+    "quux",
+);
+export type BarEnum = S.Schema.Type<typeof BarEnum>;
+
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
-    "bar": S.String,
+    "bar": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)), BarEnum),
     "foo": S.String,
 }) {}
diff --git a/base/schema-typescript-effect-schema/test/inputs/schema/date-time.schema/default/TopLevel.ts b/head/schema-typescript-effect-schema/test/inputs/schema/date-time.schema/default/TopLevel.ts
index dfcd7b0..c0de558 100644
--- a/base/schema-typescript-effect-schema/test/inputs/schema/date-time.schema/default/TopLevel.ts
+++ b/head/schema-typescript-effect-schema/test/inputs/schema/date-time.schema/default/TopLevel.ts
@@ -1,10 +1,16 @@
 import * as S from "effect/Schema";
 
 
+export const ComplexUnionArrayEnum = S.Literal(
+    "foo",
+    "bar",
+);
+export type ComplexUnionArrayEnum = S.Schema.Type<typeof ComplexUnionArrayEnum>;
+
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
-    "complex-union-array": S.Array(S.Union(S.Int, S.String)),
-    "date": S.String,
-    "date-time": S.String,
-    "time": S.String,
-    "union-array": S.Array(S.String),
+    "complex-union-array": S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)), ComplexUnionArrayEnum, S.Int)),
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
+    "date-time": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
+    "time": S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
+    "union-array": S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)), S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
 }) {}
diff --git a/base/schema-typescript-effect-schema/test/inputs/schema/optional-date-time.schema/default/TopLevel.ts b/head/schema-typescript-effect-schema/test/inputs/schema/optional-date-time.schema/default/TopLevel.ts
index 39c8118..b63c5fe 100644
--- a/base/schema-typescript-effect-schema/test/inputs/schema/optional-date-time.schema/default/TopLevel.ts
+++ b/head/schema-typescript-effect-schema/test/inputs/schema/optional-date-time.schema/default/TopLevel.ts
@@ -2,10 +2,10 @@ import * as S from "effect/Schema";
 
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
-    "optional-date": S.optional(S.NullOr(S.String)),
-    "optional-date-time": S.optional(S.NullOr(S.String)),
-    "optional-time": S.optional(S.NullOr(S.String)),
-    "required-date": S.String,
-    "required-date-time": S.String,
-    "required-time": S.String,
+    "optional-date": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)))),
+    "optional-date-time": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
+    "optional-time": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
+    "required-date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
+    "required-date-time": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
+    "required-time": S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/016af.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/016af.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/016af.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/016af.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/033b1.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/033b1.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/033b1.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/033b1.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/0a358.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/0a358.json/default/TopLevel.ts
index 1e8db27..7b5c094 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/0a358.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/0a358.json/default/TopLevel.ts
@@ -3,10 +3,10 @@ import * as S from "effect/Schema";
 
 export class Result extends S.Class<Result>("Result")({
     "code": S.String,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "id": S.Int,
     "name": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "uri": S.String,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/0a91a.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
index 66b2c50..c53b426 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
@@ -63,7 +63,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
     "compare_url": S.String,
     "contents_url": S.String,
     "contributors_url": S.String,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "default_branch": S.String,
     "deployments_url": S.String,
     "description": S.Null,
@@ -104,7 +104,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
     "owner": MergedBy,
     "private": S.Boolean,
     "pulls_url": S.String,
-    "pushed_at": S.String,
+    "pushed_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "releases_url": S.String,
     "size": S.Int,
     "ssh_url": S.String,
@@ -117,7 +117,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
     "tags_url": S.String,
     "teams_url": S.String,
     "trees_url": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "url": S.String,
     "watchers": S.Int,
     "watchers_count": S.Int,
@@ -138,12 +138,12 @@ export class PullRequest extends S.Class<PullRequest>("PullRequest")({
     "base": Base,
     "body": S.String,
     "changed_files": S.Int,
-    "closed_at": S.String,
+    "closed_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "comments": S.Int,
     "comments_url": S.String,
     "commits": S.Int,
     "commits_url": S.String,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "deletions": S.Int,
     "diff_url": S.String,
     "head": Base,
@@ -157,7 +157,7 @@ export class PullRequest extends S.Class<PullRequest>("PullRequest")({
     "mergeable": S.Null,
     "mergeable_state": S.String,
     "merged": S.Boolean,
-    "merged_at": S.String,
+    "merged_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "merged_by": MergedBy,
     "milestone": S.Null,
     "number": S.Int,
@@ -170,7 +170,7 @@ export class PullRequest extends S.Class<PullRequest>("PullRequest")({
     "state": S.String,
     "statuses_url": S.String,
     "title": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "url": S.String,
     "user": MergedBy,
 }) {}
@@ -216,7 +216,7 @@ export class Actor extends S.Class<Actor>("Actor")({
 
 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
     "actor": Actor,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "id": S.String,
     "org": S.optional(S.NullOr(Actor)),
     "payload": Payload,
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
index 6c620f4..06c39dd 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
@@ -74,7 +74,7 @@ export class Result extends S.Class<Result>("Result")({
     "id": S.Int,
     "images": S.Array(Image),
     "language": ResultLanguage,
-    "release_date": S.String,
+    "release_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "stars": S.Int,
     "tags": S.NullOr(S.Array(S.Any)),
     "title": S.String,
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/167d6.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/167d6.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/167d6.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/167d6.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/16bc5.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
index 6698bdd..e81b811 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/1b28c.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/1b409.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/1b409.json/default/TopLevel.ts
index c535637..1347f4c 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/1b409.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/1b409.json/default/TopLevel.ts
@@ -54,7 +54,7 @@ export type Title = S.Schema.Type<typeof Title>;
 
 export class Person extends S.Class<Person>("Person")({
     "bioguideid": S.String,
-    "birthday": S.String,
+    "birthday": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "cspanid": S.Int,
     "firstname": S.String,
     "gender": Gender,
@@ -87,7 +87,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
     "current": S.Boolean,
     "description": S.String,
     "district": S.Int,
-    "enddate": S.String,
+    "enddate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "extra": Extra,
     "id": S.Int,
     "leadership_title": S.NullOr(S.String),
@@ -98,7 +98,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
     "role_type_label": RoleTypeLabel,
     "senator_class": S.Null,
     "senator_rank": S.Null,
-    "startdate": S.String,
+    "startdate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "state": S.String,
     "title": Title,
     "title_long": RoleTypeLabel,
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/262f0.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/262f0.json/default/TopLevel.ts
index c86b835..dec7992 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/262f0.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/262f0.json/default/TopLevel.ts
@@ -101,7 +101,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
index 99b7ae9..2b3f93b 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
@@ -80,7 +80,7 @@ export type Title = S.Schema.Type<typeof Title>;
 
 export class Person extends S.Class<Person>("Person")({
     "bioguideid": S.String,
-    "birthday": S.String,
+    "birthday": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "cspanid": S.Int,
     "firstname": S.String,
     "gender": Gender,
@@ -113,7 +113,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
     "current": S.Boolean,
     "description": S.String,
     "district": S.Null,
-    "enddate": S.String,
+    "enddate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "extra": Extra,
     "id": S.Int,
     "leadership_title": S.NullOr(S.String),
@@ -126,7 +126,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
     "senator_class_label": SenatorClassLabel,
     "senator_rank": SenatorRank,
     "senator_rank_label": SenatorRankLabel,
-    "startdate": S.String,
+    "startdate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "state": S.String,
     "title": Title,
     "title_long": RoleTypeLabel,
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/31189.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/31189.json/default/TopLevel.ts
index c3728e2..9c6cb6c 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/31189.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/31189.json/default/TopLevel.ts
@@ -1,6 +1,11 @@
 import * as S from "effect/Schema";
 
 
+export const EffectiveFromEnum = S.Literal(
+    "0000-01-01",
+);
+export type EffectiveFromEnum = S.Schema.Type<typeof EffectiveFromEnum>;
+
 export class Rates extends S.Class<Rates>("Rates")({
     "parking": S.optional(S.NullOr(S.Number)),
     "reduced": S.optional(S.NullOr(S.Number)),
@@ -11,7 +16,7 @@ export class Rates extends S.Class<Rates>("Rates")({
 }) {}
 
 export class Period extends S.Class<Period>("Period")({
-    "effective_from": S.String,
+    "effective_from": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), EffectiveFromEnum),
     "rates": Rates,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/32d5c.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/32d5c.json/default/TopLevel.ts
index c662d3b..a215029 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/32d5c.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/32d5c.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
-    "BirthDate": S.NullOr(S.String),
+    "BirthDate": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
     "BirthDateIsProtected": S.Boolean,
     "GenderTypeID": S.Int,
     "Notes": S.String,
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/337ed.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/337ed.json/default/TopLevel.ts
index 4764273..19fdc67 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/337ed.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/337ed.json/default/TopLevel.ts
@@ -24,12 +24,12 @@ export type ResultType = S.Schema.Type<typeof ResultType>;
 
 export class CustomIncome extends S.Class<CustomIncome>("CustomIncome")({
     "amount": S.Int,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "id": S.String,
     "name": S.String,
     "status": Status,
     "type": CustomIncomeType,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "uri": S.String,
 }) {}
 
@@ -37,11 +37,11 @@ export class Result extends S.Class<Result>("Result")({
     "cost_absolute": S.NullOr(S.Int),
     "cost_max": S.NullOr(S.Int),
     "cost_min": S.NullOr(S.Int),
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "customIncomes": S.Array(CustomIncome),
     "direct_rep_costs_max": S.Null,
     "direct_rep_costs_min": S.Null,
-    "end_date": S.String,
+    "end_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "eur_sources_grants": S.Int,
     "eur_sources_grants_src": S.NullOr(S.String),
     "eur_sources_procurement": S.Int,
@@ -57,14 +57,14 @@ export class Result extends S.Class<Result>("Result")({
     "public_financing_national": S.NullOr(S.Int),
     "public_financing_total": S.NullOr(S.Int),
     "representative": S.String,
-    "start_date": S.String,
+    "start_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "status": Status,
     "total_budget": S.NullOr(S.Int),
     "turnover_absolute": S.NullOr(S.Int),
     "turnover_max": S.NullOr(S.Int),
     "turnover_min": S.NullOr(S.Int),
     "type": ResultType,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "uri": S.String,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/33d2e.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/33d2e.json/default/TopLevel.ts
index 5e2f93d..21a0d88 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/33d2e.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/33d2e.json/default/TopLevel.ts
@@ -1,6 +1,14 @@
 import * as S from "effect/Schema";
 
 
+export const BornEnum = S.Literal(
+    "0000-00-00",
+    "1898-00-00",
+    "1943-00-00",
+);
+export type BornEnum = S.Schema.Type<typeof BornEnum>;
+
+
 export const Gender = S.Literal(
     "male",
     "female",
@@ -35,11 +43,11 @@ export class Prize extends S.Class<Prize>("Prize")({
 }) {}
 
 export class Laureate extends S.Class<Laureate>("Laureate")({
-    "born": S.String,
+    "born": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), BornEnum),
     "bornCity": S.optional(S.NullOr(S.String)),
     "bornCountry": S.optional(S.NullOr(S.String)),
     "bornCountryCode": S.optional(S.NullOr(S.String)),
-    "died": S.String,
+    "died": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), BornEnum),
     "diedCity": S.optional(S.NullOr(S.String)),
     "diedCountry": S.optional(S.NullOr(S.String)),
     "diedCountryCode": S.optional(S.NullOr(S.String)),
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/3659d.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/3659d.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/3659d.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/3659d.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
index 7b56165..8b445c9 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
@@ -99,7 +99,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/43eaf.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/43eaf.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/43eaf.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/43eaf.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/4961a.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/4961a.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/4961a.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/4961a.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/4c547.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/4c547.json/default/TopLevel.ts
index 6698bdd..e81b811 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/4c547.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/4c547.json/default/TopLevel.ts
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/4e336.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/4e336.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/4e336.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/4e336.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/54d32.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/54d32.json/default/TopLevel.ts
index 5bd7a5e..db28bb7 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/54d32.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/54d32.json/default/TopLevel.ts
@@ -8,12 +8,12 @@ export const Status = S.Literal(
 export type Status = S.Schema.Type<typeof Status>;
 
 export class Result extends S.Class<Result>("Result")({
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "id": S.String,
     "person_id": S.String,
     "representative_id": S.String,
     "status": Status,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
 }) {}
 
 export class Facets extends S.Class<Facets>("Facets")({
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/5eae5.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/5eae5.json/default/TopLevel.ts
index 369855d..91b64bf 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/5eae5.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/5eae5.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
-    "Date": S.String,
+    "Date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "ID": S.Int,
     "Sponsor": S.String,
     "Title": S.String,
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/5f3a1.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/5f3a1.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/5f3a1.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/5f3a1.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/6260a.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/6260a.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/6260a.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/6260a.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/65dec.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/65dec.json/default/TopLevel.ts
index f3eea18..d766613 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/65dec.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/65dec.json/default/TopLevel.ts
@@ -55,7 +55,7 @@ export const Type = S.Literal(
 export type Type = S.Schema.Type<typeof Type>;
 
 export class Ruling extends S.Class<Ruling>("Ruling")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "text": S.String,
 }) {}
 
@@ -105,6 +105,6 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "mkm_id": S.Int,
     "mkm_name": S.String,
     "name": S.String,
-    "releaseDate": S.String,
+    "releaseDate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "type": S.String,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/6dec6.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
index 27ea84f..672bf66 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
@@ -101,7 +101,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/70c77.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/70c77.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/70c77.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/70c77.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/734ad.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/734ad.json/default/TopLevel.ts
index 187374d..720d194 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/734ad.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/734ad.json/default/TopLevel.ts
@@ -27,7 +27,7 @@ export class Result extends S.Class<Result>("Result")({
     "be_office_town": S.optional(S.NullOr(S.String)),
     "code_of_conduct": S.String,
     "contact_country": S.Int,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "entity": S.String,
     "goals": S.String,
     "head": S.String,
@@ -42,7 +42,7 @@ export class Result extends S.Class<Result>("Result")({
     "id": S.String,
     "identification_code": S.String,
     "info_members": S.String,
-    "last_update_date": S.String,
+    "last_update_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "legal": S.String,
     "legal_status": S.String,
     "main_category": S.Int,
@@ -58,12 +58,12 @@ export class Result extends S.Class<Result>("Result")({
     "networking": S.NullOr(S.String),
     "number_of_natural_persons": S.NullOr(S.Int),
     "other_code_of_conduct": S.NullOr(S.String),
-    "registration_date": S.String,
+    "registration_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "status": Status,
     "structure_members": S.String,
     "sub_category": S.Int,
     "sub_category_title": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "uri": S.String,
     "web_site_url": S.NullOr(S.String),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/75912.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/75912.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/75912.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/75912.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/77392.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/77392.json/default/TopLevel.ts
index 8b6af07..b72380d 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/77392.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/77392.json/default/TopLevel.ts
@@ -24,7 +24,7 @@ export type Pha = S.Schema.Type<typeof Pha>;
 
 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
     "designation": S.String,
-    "discovery_date": S.String,
+    "discovery_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "h_mag": S.optional(S.NullOr(S.String)),
     "i_deg": S.String,
     "moid_au": S.String,
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/7f568.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/7f568.json/default/TopLevel.ts
index 0830150..70c0576 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/7f568.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/7f568.json/default/TopLevel.ts
@@ -24,7 +24,7 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
     "comments": S.Int,
     "comments_url": S.String,
     "commits_url": S.String,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "description": S.NullOr(S.String),
     "files": S.Record({ key: S.String, value: File}),
     "forks_url": S.String,
@@ -34,7 +34,7 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
     "id": S.String,
     "public": S.Boolean,
     "truncated": S.Boolean,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "url": S.String,
     "user": S.Null,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/80aff.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/80aff.json/default/TopLevel.ts
index 1f10885..046e66c 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/80aff.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/80aff.json/default/TopLevel.ts
@@ -2,12 +2,12 @@ import * as S from "effect/Schema";
 
 
 export class Result extends S.Class<Result>("Result")({
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "id": S.Int,
     "items": S.Int,
     "name": S.String,
     "parent": S.NullOr(S.Int),
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "uri": S.String,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/88130.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/88130.json/default/TopLevel.ts
index 6698bdd..e81b811 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/88130.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/88130.json/default/TopLevel.ts
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/8a62c.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/9617f.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/9617f.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/9617f.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/9617f.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/9929c.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/9929c.json/default/TopLevel.ts
index 6698bdd..e81b811 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/9929c.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/9929c.json/default/TopLevel.ts
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
index 16b321c..3169bc0 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
@@ -15,7 +15,7 @@ export const Title = S.Literal(
 export type Title = S.Schema.Type<typeof Title>;
 
 export class Result extends S.Class<Result>("Result")({
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "entity": S.String,
     "first_name": S.String,
     "id": S.String,
@@ -24,7 +24,7 @@ export class Result extends S.Class<Result>("Result")({
     "position": S.NullOr(S.String),
     "status": Status,
     "title": S.NullOr(Title),
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "uri": S.String,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/a0496.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/a0496.json/default/TopLevel.ts
index 32ce4de..a5daa75 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/a0496.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/a0496.json/default/TopLevel.ts
@@ -7,19 +7,19 @@ export class Errors extends S.Class<Errors>("Errors")({
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "code": S.String,
     "column_names": S.Array(S.String),
-    "data": S.Array(S.Array(S.Union(S.Number, S.String, S.Null))),
+    "data": S.Array(S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), S.Number, S.Null))),
     "description": S.String,
     "display_url": S.String,
     "errors": Errors,
     "frequency": S.String,
-    "from_date": S.String,
+    "from_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "id": S.Int,
     "name": S.String,
     "premium": S.Boolean,
     "source_code": S.String,
     "source_name": S.String,
-    "to_date": S.String,
+    "to_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "type": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "urlize_name": S.String,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/a1eca.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
index 6698bdd..e81b811 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/a9691.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/a9691.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/a9691.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/a9691.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/abb4b.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/ac944.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/ac944.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/ac944.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/ac944.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/b4865.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/b4865.json/default/TopLevel.ts
index e8c486e..a9c7d1a 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/b4865.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/b4865.json/default/TopLevel.ts
@@ -36,7 +36,7 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
     "recclass": S.String,
     "reclat": S.optional(S.NullOr(S.String)),
     "reclong": S.optional(S.NullOr(S.String)),
-    "year": S.optional(S.NullOr(S.String)),
+    "year": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
 }) {}
 
 export const TopLevel = S.Array(TopLevelElement);
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/cd463.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/cd463.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/cd463.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/cd463.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
index 6698bdd..e81b811 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/cfbce.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/cfbce.json/default/TopLevel.ts
index b0aa57a..f216282 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/cfbce.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/cfbce.json/default/TopLevel.ts
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "base": S.String,
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "rates": S.Record({ key: S.String, value: S.Number}),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/d0908.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/d0908.json/default/TopLevel.ts
index bf2b33b..05ec271 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/d0908.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/d0908.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "population": S.Int,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/d23d5.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
index f5a4ebb..b2bbc3a 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
@@ -3,10 +3,10 @@ import * as S from "effect/Schema";
 
 export class Result extends S.Class<Result>("Result")({
     "acronym": S.NullOr(S.String),
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "id": S.String,
     "name": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "uri": S.String,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
index 3876dc2..33fd8cc 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
@@ -100,7 +100,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/dc44f.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
index 5c9dc0f..8db7f0d 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
@@ -104,7 +104,7 @@ export const Type = S.Literal(
 export type Type = S.Schema.Type<typeof Type>;
 
 export class Ruling extends S.Class<Ruling>("Ruling")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "text": S.String,
 }) {}
 
@@ -153,6 +153,6 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "mkm_id": S.Int,
     "mkm_name": S.String,
     "name": S.String,
-    "releaseDate": S.String,
+    "releaseDate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "type": S.String,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
index 5c9dc0f..8db7f0d 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
@@ -104,7 +104,7 @@ export const Type = S.Literal(
 export type Type = S.Schema.Type<typeof Type>;
 
 export class Ruling extends S.Class<Ruling>("Ruling")({
-    "date": S.String,
+    "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "text": S.String,
 }) {}
 
@@ -153,6 +153,6 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "mkm_id": S.Int,
     "mkm_name": S.String,
     "name": S.String,
-    "releaseDate": S.String,
+    "releaseDate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "type": S.String,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/df957.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/df957.json/default/TopLevel.ts
index 6698bdd..e81b811 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/df957.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/df957.json/default/TopLevel.ts
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/misc/e2915.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/misc/e2915.json/default/TopLevel.ts
index 0aad7c1..17e1830 100644
--- a/base/typescript-effect-schema/test/inputs/json/misc/e2915.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/misc/e2915.json/default/TopLevel.ts
@@ -99,7 +99,7 @@ export class Results extends S.Class<Results>("Results")({
 
 export class Query extends S.Class<Query>("Query")({
     "count": S.Int,
-    "created": S.String,
+    "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "lang": S.String,
     "results": Results,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/priority/bug2590.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/priority/bug2590.json/default/TopLevel.ts
index 55426bf..ce9bf3c 100644
--- a/base/typescript-effect-schema/test/inputs/json/priority/bug2590.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/priority/bug2590.json/default/TopLevel.ts
@@ -2,8 +2,8 @@ import * as S from "effect/Schema";
 
 
 export class Invoice extends S.Class<Invoice>("Invoice")({
-    "createdAt": S.NullOr(S.String),
-    "dueDate": S.NullOr(S.String),
+    "createdAt": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
+    "dueDate": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/))),
     "name": S.String,
 }) {}
 
diff --git a/base/typescript-effect-schema/test/inputs/json/priority/bug2663.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/priority/bug2663.json/default/TopLevel.ts
index 0c3a4eb..e36b8e2 100644
--- a/base/typescript-effect-schema/test/inputs/json/priority/bug2663.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/priority/bug2663.json/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
 
 
 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
-    "birthday": S.String,
-    "lastSeen": S.String,
+    "birthday": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
+    "lastSeen": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "name": S.String,
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/samples/github-events.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/samples/github-events.json/default/TopLevel.ts
index 9d7b02c..8c53f87 100644
--- a/base/typescript-effect-schema/test/inputs/json/samples/github-events.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/samples/github-events.json/default/TopLevel.ts
@@ -88,7 +88,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
     "compare_url": S.String,
     "contents_url": S.String,
     "contributors_url": S.String,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "default_branch": S.String,
     "deployments_url": S.String,
     "description": S.String,
@@ -129,7 +129,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
     "owner": User,
     "private": S.Boolean,
     "pulls_url": S.String,
-    "pushed_at": S.String,
+    "pushed_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "releases_url": S.String,
     "size": S.Int,
     "ssh_url": S.String,
@@ -142,7 +142,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
     "tags_url": S.String,
     "teams_url": S.String,
     "trees_url": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "url": S.String,
     "watchers": S.Int,
     "watchers_count": S.Int,
@@ -163,12 +163,12 @@ export class PayloadPullRequest extends S.Class<PayloadPullRequest>("PayloadPull
     "base": Base,
     "body": S.String,
     "changed_files": S.Int,
-    "closed_at": S.String,
+    "closed_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "comments": S.Int,
     "comments_url": S.String,
     "commits": S.Int,
     "commits_url": S.String,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "deletions": S.Int,
     "diff_url": S.String,
     "head": Base,
@@ -182,7 +182,7 @@ export class PayloadPullRequest extends S.Class<PayloadPullRequest>("PayloadPull
     "mergeable": S.Null,
     "mergeable_state": S.String,
     "merged": S.Boolean,
-    "merged_at": S.String,
+    "merged_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "merged_by": User,
     "milestone": S.Null,
     "number": S.Int,
@@ -195,18 +195,18 @@ export class PayloadPullRequest extends S.Class<PayloadPullRequest>("PayloadPull
     "state": S.String,
     "statuses_url": S.String,
     "title": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "url": S.String,
     "user": User,
 }) {}
 
 export class Comment extends S.Class<Comment>("Comment")({
     "body": S.String,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "html_url": S.String,
     "id": S.Int,
     "issue_url": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "url": S.String,
     "user": User,
 }) {}
@@ -214,10 +214,10 @@ export class Comment extends S.Class<Comment>("Comment")({
 export class Milestone extends S.Class<Milestone>("Milestone")({
     "closed_at": S.Null,
     "closed_issues": S.Int,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "creator": User,
     "description": S.String,
-    "due_on": S.NullOr(S.String),
+    "due_on": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
     "html_url": S.String,
     "id": S.Int,
     "labels_url": S.String,
@@ -225,7 +225,7 @@ export class Milestone extends S.Class<Milestone>("Milestone")({
     "open_issues": S.Int,
     "state": S.String,
     "title": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "url": S.String,
 }) {}
 
@@ -252,10 +252,10 @@ export class Issue extends S.Class<Issue>("Issue")({
     "assignee": S.Null,
     "assignees": S.Array(S.Any),
     "body": S.String,
-    "closed_at": S.NullOr(S.String),
+    "closed_at": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
     "comments": S.Int,
     "comments_url": S.String,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "events_url": S.String,
     "html_url": S.String,
     "id": S.Int,
@@ -268,7 +268,7 @@ export class Issue extends S.Class<Issue>("Issue")({
     "repository_url": S.String,
     "state": S.String,
     "title": S.String,
-    "updated_at": S.String,
+    "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "url": S.String,
     "user": User,
 }) {}
@@ -284,7 +284,7 @@ export class Actor extends S.Class<Actor>("Actor")({
 
 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
     "actor": Actor,
-    "created_at": S.String,
+    "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
     "id": S.String,
     "org": S.optional(S.NullOr(Actor)),
     "payload": Payload,
diff --git a/base/typescript-effect-schema/test/inputs/json/samples/null-safe.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
index 4a23658..dea40c8 100644
--- a/base/typescript-effect-schema/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
@@ -9,7 +9,7 @@ export class Address extends S.Class<Address>("Address")({
 
 export class Item extends S.Class<Item>("Item")({
     "address": S.optional(S.NullOr(Address)),
-    "created_at": S.optional(S.NullOr(S.String)),
+    "created_at": S.optional(S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
     "name": S.String,
     "sex": S.NullOr(S.Int),
 }) {}
diff --git a/base/typescript-effect-schema/test/inputs/json/samples/us-senators.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
index 3cedc18..d5a0ab0 100644
--- a/base/typescript-effect-schema/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
@@ -80,7 +80,7 @@ export type Title = S.Schema.Type<typeof Title>;
 
 export class Person extends S.Class<Person>("Person")({
     "bioguideid": S.String,
-    "birthday": S.String,
+    "birthday": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "cspanid": S.Int,
     "firstname": S.String,
     "gender": Gender,
@@ -112,7 +112,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
     "current": S.Boolean,
     "description": S.String,
     "district": S.Null,
-    "enddate": S.String,
+    "enddate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "extra": Extra,
     "leadership_title": S.NullOr(S.String),
     "party": Party,
@@ -124,7 +124,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
     "senator_class_label": SenatorClassLabel,
     "senator_rank": SenatorRank,
     "senator_rank_label": SenatorRankLabel,
-    "startdate": S.String,
+    "startdate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
     "state": S.String,
     "title": Title,
     "title_long": RoleTypeLabel,
