diff --git a/pkg/model/mapfix.go b/pkg/model/mapfix.go
index f351ddc..a64c71e 100644
--- a/pkg/model/mapfix.go
+++ b/pkg/model/mapfix.go
@@ -25,16 +25,16 @@ type Mapfix struct {
 	ID            int64 `gorm:"primaryKey"`
 	DisplayName   string
 	Creator       string
-	GameID        int32
+	GameID        uint32
 	CreatedAt     time.Time
 	UpdatedAt     time.Time
-	Submitter     int64 // UserID
-	AssetID       int64
-	AssetVersion  int64
-	ValidatedAssetID       int64
-	ValidatedAssetVersion  int64
+	Submitter     uint64 // UserID
+	AssetID       uint64
+	AssetVersion  uint64
+	ValidatedAssetID       uint64
+	ValidatedAssetVersion  uint64
 	Completed     bool   // Has this version of the map been completed at least once on maptest
-	TargetAssetID int64 // where to upload map fix.  if the TargetAssetID is 0, it's a new map.
+	TargetAssetID uint64 // where to upload map fix.  if the TargetAssetID is 0, it's a new map.
 	StatusID      MapfixStatus
 	StatusMessage string
 }
diff --git a/pkg/model/nats.go b/pkg/model/nats.go
index 832c340..7a69450 100644
--- a/pkg/model/nats.go
+++ b/pkg/model/nats.go
@@ -7,42 +7,42 @@ package model
 
 type CreateSubmissionRequest struct {
 	// operation_id is passed back in the response message
-	OperationID   int32
-	ModelID       int64
+	OperationID    int32
+	ModelID       uint64
 }
 
 type CreateMapfixRequest struct {
-	OperationID   int32
-	ModelID       int64
-	TargetAssetID int64
+	OperationID    int32
+	ModelID       uint64
+	TargetAssetID uint64
 }
 
 type ValidateSubmissionRequest struct {
 	// submission_id is passed back in the response message
-	SubmissionID     int64
-	ModelID          int64
-	ModelVersion     int64
-	ValidatedModelID *int64 // optional value
+	SubmissionID       int64
+	ModelID           uint64
+	ModelVersion      uint64
+	ValidatedModelID *uint64 // optional value
 }
 
 type ValidateMapfixRequest struct {
-	MapfixID     int64
-	ModelID          int64
-	ModelVersion     int64
-	ValidatedModelID *int64 // optional value
+	MapfixID           int64
+	ModelID           uint64
+	ModelVersion      uint64
+	ValidatedModelID *uint64 // optional value
 }
 
 // Create a new map
 type UploadSubmissionRequest struct {
-	SubmissionID int64
-	ModelID      int64
-	ModelVersion int64
+	SubmissionID  int64
+	ModelID      uint64
+	ModelVersion uint64
 	ModelName    string
 }
 
 type UploadMapfixRequest struct {
-	MapfixID  int64
-	ModelID       int64
-	ModelVersion  int64
-	TargetAssetID int64
+	MapfixID       int64
+	ModelID       uint64
+	ModelVersion  uint64
+	TargetAssetID uint64
 }
diff --git a/pkg/model/submission.go b/pkg/model/submission.go
index 6e20459..1bf2130 100644
--- a/pkg/model/submission.go
+++ b/pkg/model/submission.go
@@ -26,16 +26,16 @@ type Submission struct {
 	ID            int64 `gorm:"primaryKey"`
 	DisplayName   string
 	Creator       string
-	GameID        int32
+	GameID        uint32
 	CreatedAt     time.Time
 	UpdatedAt     time.Time
-	Submitter     int64 // UserID
-	AssetID       int64
-	AssetVersion  int64
-	ValidatedAssetID       int64
-	ValidatedAssetVersion  int64
+	Submitter     uint64 // UserID
+	AssetID       uint64
+	AssetVersion  uint64
+	ValidatedAssetID       uint64
+	ValidatedAssetVersion  uint64
 	Completed     bool   // Has this version of the map been completed at least once on maptest
-	UploadedAssetID        int64 // where to upload map fix.  if the TargetAssetID is 0, it's a new map.
+	UploadedAssetID        uint64 // where to upload map fix.  if the TargetAssetID is 0, it's a new map.
 	StatusID      SubmissionStatus
 	StatusMessage string
 }
diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go
index ff276d8..448457f 100644
--- a/pkg/service/mapfixes.go
+++ b/pkg/service/mapfixes.go
@@ -41,6 +41,13 @@ var (
 
 // POST /mapfixes
 func (svc *Service) CreateMapfix(ctx context.Context, request *api.MapfixTriggerCreate) (*api.OperationID, error) {
+	// sanitization
+	if request.AssetID<0 || request.TargetAssetID<0{
+		return nil, ErrNegativeID
+	}
+	var ModelID=uint64(request.AssetID);
+	var TargetAssetID=uint64(request.TargetAssetID);
+
 	userInfo, ok := ctx.Value("UserInfo").(UserInfoHandle)
 	if !ok {
 		return nil, ErrUserInfo
@@ -105,8 +112,8 @@ func (svc *Service) CreateMapfix(ctx context.Context, request *api.MapfixTrigger
 
 	create_request := model.CreateMapfixRequest{
 		OperationID:   operation.ID,
-		ModelID:       request.AssetID,
-		TargetAssetID: request.TargetAssetID,
+		ModelID:       ModelID,
+		TargetAssetID: TargetAssetID,
 	}
 
 	j, err := json.Marshal(create_request)
@@ -135,7 +142,7 @@ func (svc *Service) GetMapfix(ctx context.Context, params api.GetMapfixParams) (
 		ID:            mapfix.ID,
 		DisplayName:   mapfix.DisplayName,
 		Creator:       mapfix.Creator,
-		GameID:        mapfix.GameID,
+		GameID:        int32(mapfix.GameID),
 		CreatedAt:     mapfix.CreatedAt.Unix(),
 		UpdatedAt:     mapfix.UpdatedAt.Unix(),
 		Submitter:     int64(mapfix.Submitter),
@@ -182,7 +189,7 @@ func (svc *Service) ListMapfixes(ctx context.Context, params api.ListMapfixesPar
 			ID:            item.ID,
 			DisplayName:   item.DisplayName,
 			Creator:       item.Creator,
-			GameID:        item.GameID,
+			GameID:        int32(item.GameID),
 			CreatedAt:     item.CreatedAt.Unix(),
 			UpdatedAt:     item.UpdatedAt.Unix(),
 			Submitter:     int64(item.Submitter),
diff --git a/pkg/service/service.go b/pkg/service/service.go
index 1815060..6c6f3e7 100644
--- a/pkg/service/service.go
+++ b/pkg/service/service.go
@@ -24,6 +24,7 @@ var (
 	ErrPermissionDeniedNeedRoleMapDownload = fmt.Errorf("%w: Need Role MapDownload", ErrPermissionDenied)
 	ErrPermissionDeniedNeedRoleScriptWrite = fmt.Errorf("%w: Need Role ScriptWrite", ErrPermissionDenied)
 	ErrPermissionDeniedNeedRoleMaptest = fmt.Errorf("%w: Need Role Maptest", ErrPermissionDenied)
+	ErrNegativeID = errors.New("A negative ID was provided")
 )
 
 type Service struct {
diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go
index bf7e9d5..f8a9641 100644
--- a/pkg/service/submissions.go
+++ b/pkg/service/submissions.go
@@ -43,6 +43,12 @@ var (
 
 // POST /submissions
 func (svc *Service) CreateSubmission(ctx context.Context, request *api.SubmissionTriggerCreate) (*api.OperationID, error) {
+	// sanitization
+	if request.AssetID<0{
+		return nil, ErrNegativeID
+	}
+	var ModelID=uint64(request.AssetID);
+
 	userInfo, ok := ctx.Value("UserInfo").(UserInfoHandle)
 	if !ok {
 		return nil, ErrUserInfo
@@ -96,7 +102,7 @@ func (svc *Service) CreateSubmission(ctx context.Context, request *api.Submissio
 
 	create_request := model.CreateSubmissionRequest{
 		OperationID:   operation.ID,
-		ModelID:       request.AssetID,
+		ModelID:       ModelID,
 	}
 
 	j, err := json.Marshal(create_request)
@@ -125,7 +131,7 @@ func (svc *Service) GetSubmission(ctx context.Context, params api.GetSubmissionP
 		ID:            submission.ID,
 		DisplayName:   submission.DisplayName,
 		Creator:       submission.Creator,
-		GameID:        submission.GameID,
+		GameID:        int32(submission.GameID),
 		CreatedAt:     submission.CreatedAt.Unix(),
 		UpdatedAt:     submission.UpdatedAt.Unix(),
 		Submitter:     int64(submission.Submitter),
@@ -172,7 +178,7 @@ func (svc *Service) ListSubmissions(ctx context.Context, params api.ListSubmissi
 			ID:            item.ID,
 			DisplayName:   item.DisplayName,
 			Creator:       item.Creator,
-			GameID:        item.GameID,
+			GameID:        int32(item.GameID),
 			CreatedAt:     item.CreatedAt.Unix(),
 			UpdatedAt:     item.UpdatedAt.Unix(),
 			Submitter:     int64(item.Submitter),
@@ -647,12 +653,13 @@ func (svc *Service) ReleaseSubmissions(ctx context.Context, request []api.Releas
 
 	for i,submission := range submissions{
 		date := request[i].Date.Unix()
+		var GameID = int32(submission.GameID)
 		// create each map with go-grpc
 		_, err := svc.Client.Create(ctx, &maps.MapRequest{
-			ID:          submission.UploadedAssetID,
+			ID:          int64(submission.UploadedAssetID),
 			DisplayName: &submission.DisplayName,
 			Creator:     &submission.Creator,
-			GameID:      &submission.GameID,
+			GameID:      &GameID,
 			Date:        &date,
 		})
 		if err != nil {
diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go
index e0f7375..f270021 100644
--- a/pkg/service_internal/mapfixes.go
+++ b/pkg/service_internal/mapfixes.go
@@ -82,6 +82,20 @@ func (svc *Service) ActionMapfixUploaded(ctx context.Context, params internal.Ac
 
 // POST /mapfixes
 func (svc *Service) CreateMapfix(ctx context.Context, request *internal.MapfixCreate) (*internal.MapfixID, error) {
+	// sanitization
+	if request.GameID<0||
+	request.AssetOwner<0||
+	request.AssetID<0||
+	request.AssetVersion<0||
+	request.TargetAssetID<0{
+		return nil, ErrNegativeID
+	}
+	var GameID=uint32(request.GameID);
+	var Submitter=uint64(request.AssetOwner);
+	var AssetID=uint64(request.AssetID);
+	var AssetVersion=uint64(request.AssetVersion);
+	var TargetAssetID=uint64(request.TargetAssetID);
+
 	// Check if an active mapfix with the same asset id exists
 	{
 		filter := datastore.Optional()
@@ -115,12 +129,12 @@ func (svc *Service) CreateMapfix(ctx context.Context, request *internal.MapfixCr
 		ID:            0,
 		DisplayName:   request.DisplayName,
 		Creator:       request.Creator,
-		GameID:        request.GameID,
-		Submitter:     request.AssetOwner,
-		AssetID:       request.AssetID,
-		AssetVersion:  request.AssetVersion,
+		GameID:        GameID,
+		Submitter:     Submitter,
+		AssetID:       AssetID,
+		AssetVersion:  AssetVersion,
 		Completed:     false,
-		TargetAssetID: request.TargetAssetID,
+		TargetAssetID: TargetAssetID,
 		StatusID:      model.MapfixStatusUnderConstruction,
 	})
 	if err != nil {
diff --git a/pkg/service_internal/service_internal.go b/pkg/service_internal/service_internal.go
index 7826495..6b4d94f 100644
--- a/pkg/service_internal/service_internal.go
+++ b/pkg/service_internal/service_internal.go
@@ -9,6 +9,10 @@ import (
 	"github.com/nats-io/nats.go"
 )
 
+var (
+	ErrNegativeID = errors.New("A negative ID was provided")
+)
+
 type Service struct {
 	DB   datastore.Datastore
 	Nats nats.JetStreamContext
diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go
index 555ea86..0100189 100644
--- a/pkg/service_internal/submissions.go
+++ b/pkg/service_internal/submissions.go
@@ -82,6 +82,18 @@ func (svc *Service) ActionSubmissionUploaded(ctx context.Context, params interna
 
 // POST /submissions
 func (svc *Service) CreateSubmission(ctx context.Context, request *internal.SubmissionCreate) (*internal.SubmissionID, error) {
+	// sanitization
+	if request.GameID<0||
+	request.AssetOwner<0||
+	request.AssetID<0||
+	request.AssetVersion<0{
+		return nil, ErrNegativeID
+	}
+	var GameID=uint32(request.GameID);
+	var Submitter=uint64(request.AssetOwner);
+	var AssetID=uint64(request.AssetID);
+	var AssetVersion=uint64(request.AssetVersion);
+
 	// Check if an active submission with the same asset id exists
 	{
 		filter := datastore.Optional()
@@ -115,10 +127,10 @@ func (svc *Service) CreateSubmission(ctx context.Context, request *internal.Subm
 		ID:            0,
 		DisplayName:   request.DisplayName,
 		Creator:       request.Creator,
-		GameID:        request.GameID,
-		Submitter:     request.AssetOwner,
-		AssetID:       request.AssetID,
-		AssetVersion:  request.AssetVersion,
+		GameID:        GameID,
+		Submitter:     Submitter,
+		AssetID:       AssetID,
+		AssetVersion:  AssetVersion,
 		Completed:     false,
 		StatusID:      model.SubmissionStatusUnderConstruction,
 	})