diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index c70f7f0bab7282ddf37d52ea378c03844edc89ad..58157033adea9e8df2381e0c2e5189c9e8d1492e 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -5,7 +5,14 @@ module.exports = {
   root: true,
   extends: [
     "plugin:vue/essential",
+    "plugin:vue/strongly-recommended",
     "eslint:recommended",
     "@vue/eslint-config-prettier",
   ],
+  env: {
+    es2021: true,
+  },
+  parserOptions: {
+    ecmaVersion: "latest",
+  },
 };
diff --git a/example/src/components/NumberCounter.vue b/example/src/components/NumberCounter.vue
index 1be916a3fe56d1c224d633faf30bec60f1f937cf..001068577abfec812951ae184ac1e78b26371c33 100644
--- a/example/src/components/NumberCounter.vue
+++ b/example/src/components/NumberCounter.vue
@@ -20,7 +20,10 @@
 export default {
   name: "NumberCounter",
   props: {
-    value: Number,
+    value: {
+      type: Number,
+      required: true,
+    },
   },
   emits: ["input"],
   data() {
diff --git a/src/DragContainer.vue b/src/DragContainer.vue
index ff55661bbe84bf90e52ab1192484850dfd133dc3..d9de43a2395d94adbdac3d2ebfe6c0a0611867ae 100644
--- a/src/DragContainer.vue
+++ b/src/DragContainer.vue
@@ -26,14 +26,39 @@ export default {
     },
   },
   props: {
-    dragID: String,
-    x: Number,
-    y: Number,
-    w: Number,
-    h: Number,
-    data: Object,
-    context: String,
-    gridId: String,
+    dragID: {
+      type: String,
+      required: true,
+    },
+    x: {
+      type: Number,
+      required: true,
+    },
+    y: {
+      type: Number,
+      required: true,
+    },
+    w: {
+      type: Number,
+      required: true,
+    },
+    h: {
+      type: Number,
+      required: true,
+    },
+    data: {
+      type: Object,
+      required: false,
+      default: () => ({}),
+    },
+    context: {
+      type: String,
+      required: true,
+    },
+    gridId: {
+      type: String,
+      required: true,
+    },
     disabled: Boolean,
   },
   computed: {
diff --git a/src/DragGrid.vue b/src/DragGrid.vue
index 18e790971c1091c4b2167bcc64b989931391802b..0592a8a6639ee7f8f8b36a3ec41517ecad076e9b 100644
--- a/src/DragGrid.vue
+++ b/src/DragGrid.vue
@@ -60,10 +60,12 @@ export default {
     posValidation: {
       type: Function,
       required: false,
+      default: undefined,
     },
     validateElement: {
       type: Function,
       required: false,
+      default: undefined,
     },
     value: {
       type: Array,