diff --git a/apps/server/.mocharc.integration.json b/apps/server/.mocharc.integration.json
new file mode 100644
index 0000000..909b5a8
--- /dev/null
+++ b/apps/server/.mocharc.integration.json
@@ -0,0 +1,6 @@
+{
+	"extension": ["ts"],
+	"require": "ts-node/register",
+	"spec": "test/integration/**/*.spec.ts",
+	"timeout": 35000
+}
diff --git a/apps/server/.mocharc.json b/apps/server/.mocharc.json
index 6d2641a..130ab18 100644
--- a/apps/server/.mocharc.json
+++ b/apps/server/.mocharc.json
@@ -2,5 +2,6 @@
 	"extension": ["ts"],
 	"require": "ts-node/register",
 	"spec": "test/**/*.spec.ts",
+	"ignore": ["test/integration/**/*"],
 	"timeout": 35000
 }
diff --git a/apps/server/package.json b/apps/server/package.json
index 50a0e09..b48d50a 100644
--- a/apps/server/package.json
+++ b/apps/server/package.json
@@ -7,7 +7,8 @@
 		"build": "tsc -p tsconfig.build.json",
 		"debug": "nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec node --inspect -r ts-node/register ./src/server.ts",
 		"start": "NODE_ENV=production ts-node -T src/server.ts",
-		"test": "nyc mocha"
+		"test": "nyc mocha",
+		"test:integration": "nyc mocha --config .mocharc.integration.json"
 	},
 	"repository": {
 		"type": "git",
diff --git a/package.json b/package.json
index fadba1d..1a6c2cd 100644
--- a/package.json
+++ b/package.json
@@ -9,11 +9,13 @@
 		"build:validation": "pnpm nx build @overture-stack/lectern-validation",
 		"build:server": "pnpm nx build @overture-stack/lectern-server",
 		"build:client": "pnpm nx build @overture-stack/lectern-client",
-		"test:all": "pnpm nx run-many --all --target=test",
-		"test:dictionary": "pnpm nx test @overture-stack/lectern-dictionary",
-		"test:validation": "pnpm nx test @overture-stack/lectern-validation",
-		"test:server": "pnpm nx test @overture-stack/lectern-server",
-		"test:client": "pnpm nx test @overture-stack/lectern-client",
+		"test:all": "pnpm nx run-many --all --target=test,test:integration",
+		"test:unit:all": "pnpm nx run-many --all --target=test",
+		"test:unit:dictionary": "pnpm nx test @overture-stack/lectern-dictionary",
+		"test:unit:validation": "pnpm nx test @overture-stack/lectern-validation",
+		"test:unit:server": "pnpm nx test @overture-stack/lectern-server",
+		"test:unit:client": "pnpm nx test @overture-stack/lectern-client",
+		"test:integration:server": "pnpm nx test:integration @overture-stack/lectern-server",
 		"generate": "pnpm build:dictionary && pnpm -C scripts generate"
 	},
 	"keywords": [],
diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts
index 0f9dbb1..ce41fb2 100644
--- a/packages/client/src/index.ts
+++ b/packages/client/src/index.ts
@@ -36,8 +36,11 @@ export type {
 	TestResult,
 	TestResultValid,
 	TestResultInvalid,
+	SchemaValidationRecordErrorDetails,
 	SchemaRecordError,
+	DictionaryValidationRecordErrorDetails,
 	DictionaryValidationError,
+	FieldValidationErrorRestrictionInfo,
 	FieldValidationError,
 	ParseDictionaryData,
 	ParseDictionaryFailure,
@@ -45,6 +48,7 @@ export type {
 	ParseSchemaError,
 	ParseSchemaFailureData,
 	ParseSchemaResult,
+	ParseRecordFailureData,
 	ParseRecordResult,
 } from '@overture-stack/lectern-validation';