diff --git a/build/bom/pom.xml b/build/bom/pom.xml
index 7dabb801a7d..0e68a2d543c 100644
--- a/build/bom/pom.xml
+++ b/build/bom/pom.xml
@@ -346,17 +346,6 @@
${version.ai.timefold.solver}
sources
-
- ai.timefold.solver
- timefold-solver-model-rest-definition
- ${version.ai.timefold.solver}
-
-
- ai.timefold.solver
- timefold-solver-model-rest-definition
- ${version.ai.timefold.solver}
- sources
-
ai.timefold.solver
timefold-solver-model-rest
diff --git a/model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/DatasetSelector.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/DatasetSelector.java
similarity index 69%
rename from model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/DatasetSelector.java
rename to model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/DatasetSelector.java
index fd726b3d60d..04c1599e560 100644
--- a/model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/DatasetSelector.java
+++ b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/DatasetSelector.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.rest.definition.api;
+package ai.timefold.solver.model.definition.api.rest;
public enum DatasetSelector {
diff --git a/model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/OperationId.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationId.java
similarity index 96%
rename from model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/OperationId.java
rename to model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationId.java
index 850c823ddb8..f67503f7cd5 100644
--- a/model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/OperationId.java
+++ b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationId.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.rest.definition.api;
+package ai.timefold.solver.model.definition.api.rest;
public final class OperationId {
diff --git a/model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/OperationOnPost.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationOnPost.java
similarity index 68%
rename from model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/OperationOnPost.java
rename to model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationOnPost.java
index e6122a8cbcc..6f8e6b5b9dc 100644
--- a/model/rest-definition/src/main/java/ai/timefold/solver/model/rest/definition/api/OperationOnPost.java
+++ b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationOnPost.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.rest.definition.api;
+package ai.timefold.solver.model.definition.api.rest;
public enum OperationOnPost {
NONE,
diff --git a/model/pom.xml b/model/pom.xml
index 6a50e1d1f4a..7fbaac32e68 100644
--- a/model/pom.xml
+++ b/model/pom.xml
@@ -35,7 +35,6 @@
facade/model
facade/model-with-maps
facade/model-parent
- rest-definition
model-defaults
tools/maven-plugin
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelDescriptorProcessor.java b/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelDescriptorProcessor.java
index b042e9fb446..4e6faa02c35 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelDescriptorProcessor.java
+++ b/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelDescriptorProcessor.java
@@ -1,7 +1,7 @@
package ai.timefold.solver.model.quarkus.deployment;
+import static ai.timefold.solver.model.definition.api.rest.OperationId.POST_OPERATIONS_ID_PATTERN;
import static ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils.excludeType;
-import static ai.timefold.solver.model.rest.definition.api.OperationId.POST_OPERATIONS_ID_PATTERN;
import java.io.IOException;
import java.io.UncheckedIOException;
@@ -47,6 +47,7 @@
import ai.timefold.solver.model.definition.api.domain.ConstraintReference;
import ai.timefold.solver.model.definition.api.domain.DataFormat;
import ai.timefold.solver.model.definition.api.domain.ModelRequest;
+import ai.timefold.solver.model.definition.api.rest.OperationId;
import ai.timefold.solver.model.definition.internal.descriptor.ConstraintDescriptor;
import ai.timefold.solver.model.definition.internal.descriptor.ConstraintGroupDescriptor;
import ai.timefold.solver.model.definition.internal.descriptor.DocumentationDescriptor;
@@ -68,7 +69,6 @@
import ai.timefold.solver.model.quarkus.deployment.descriptor.DefaultConstraintGroupDescriptorFactory;
import ai.timefold.solver.model.quarkus.deployment.openapi.SchemaPostProcessor;
import ai.timefold.solver.model.quarkus.deployment.openapi.SchemaUtils;
-import ai.timefold.solver.model.rest.definition.api.OperationId;
import org.apache.commons.lang3.exception.UncheckedException;
import org.eclipse.microprofile.config.Config;
diff --git a/model/rest-definition/pom.xml b/model/rest-definition/pom.xml
deleted file mode 100644
index 44a8a57cb1a..00000000000
--- a/model/rest-definition/pom.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
- 4.0.0
-
- ai.timefold.solver
- timefold-solver-model-internal-parent
- ${revision}
- ../pom.xml
-
-
- timefold-solver-model-rest-definition
- (Preview) Timefold Solver Model REST definition
-
- This module contains REST API types definitions.
- This module is in a preview state and thus is a subject to changes.
-
-
-
-
- ai.timefold.solver
- timefold-solver-model-definition
-
-
- io.quarkus
- quarkus-rest-jackson
-
-
-
- org.junit.jupiter
- junit-jupiter-api
- test
-
-
- org.assertj
- assertj-core
- test
-
-
-
-
-
-
- io.smallrye
- jandex-maven-plugin
-
-
-
-
diff --git a/model/rest/pom.xml b/model/rest/pom.xml
index e8ed1e2af35..ae9cd7e246d 100644
--- a/model/rest/pom.xml
+++ b/model/rest/pom.xml
@@ -23,10 +23,6 @@
ai.timefold.solver
timefold-solver-model-json
-
- ai.timefold.solver
- timefold-solver-model-rest-definition
-
io.quarkus
quarkus-rest-jackson
diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractModelAPIResource.java b/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractModelAPIResource.java
index ef7f83f0064..e85cab63e35 100644
--- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractModelAPIResource.java
+++ b/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractModelAPIResource.java
@@ -43,6 +43,9 @@
import ai.timefold.solver.model.definition.api.log.LogInfo;
import ai.timefold.solver.model.definition.api.metrics.ModelInputMetrics;
import ai.timefold.solver.model.definition.api.metrics.ModelOutputMetrics;
+import ai.timefold.solver.model.definition.api.rest.DatasetSelector;
+import ai.timefold.solver.model.definition.api.rest.OperationId;
+import ai.timefold.solver.model.definition.api.rest.OperationOnPost;
import ai.timefold.solver.model.definition.api.validation.Issue;
import ai.timefold.solver.model.definition.api.validation.IssueCode;
import ai.timefold.solver.model.definition.api.validation.ModelValidator;
@@ -62,9 +65,6 @@
import ai.timefold.solver.model.definition.internal.events.SolverChannels;
import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService;
import ai.timefold.solver.model.json.internal.patch.JsonPatch;
-import ai.timefold.solver.model.rest.definition.api.DatasetSelector;
-import ai.timefold.solver.model.rest.definition.api.OperationId;
-import ai.timefold.solver.model.rest.definition.api.OperationOnPost;
import org.eclipse.microprofile.openapi.annotations.Operation;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java b/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java
index f0762ed4279..a3deb471ffa 100644
--- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java
+++ b/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java
@@ -43,7 +43,7 @@
import ai.timefold.solver.model.definition.internal.events.InitSolutionEvent;
import ai.timefold.solver.model.definition.internal.events.SolverChannels;
import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelConfigOverrides;
-import ai.timefold.solver.model.rest.definition.api.OperationOnPost;
+import ai.timefold.solver.model.definition.api.rest.OperationOnPost;
import ai.timefold.solver.model.testmodel.domain.Employee;
import ai.timefold.solver.model.testmodel.domain.EmployeeSchedule;
import ai.timefold.solver.model.testmodel.domain.Shift;
diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java b/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java
index fccee069c79..8cecdeb766c 100644
--- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java
+++ b/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java
@@ -12,7 +12,7 @@
import java.util.List;
import java.util.Optional;
-import ai.timefold.solver.model.rest.definition.api.OperationId;
+import ai.timefold.solver.model.definition.api.rest.OperationId;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.openapi.models.OpenAPI;