diff --git a/build/premake5.lua b/build/premake5.lua
index 340807c..8749d62 100644
--- a/build/premake5.lua
+++ b/build/premake5.lua
@@ -66,7 +66,12 @@
 
     files {"../src/**.cpp"}
 
-    buildoptions {"-Wall", "-fno-exceptions", "-fno-rtti", "-Werror=format"}
+    buildoptions {
+        "-Wall", "-fno-exceptions",
+        "-fno-rtti",
+        "-Werror=format",
+        "-Wimplicit-int-conversion",
+    }
 
     filter {"system:macosx" }
         buildoptions {"-flto=full"}
diff --git a/src/shapes/mesh.cpp b/src/shapes/mesh.cpp
index fa8234f..e98d853 100644
--- a/src/shapes/mesh.cpp
+++ b/src/shapes/mesh.cpp
@@ -58,9 +58,7 @@
 
     BinaryReader reader(value);
     while (!reader.reachedEnd()) {
-        uint64_t index = reader.readVarUint64();
-        assert(index < std::numeric_limits<uint16_t>::max());
-        buffer->push_back(index);
+        buffer->push_back(reader.readVarUintAs<uint16_t>());
     }
     m_IndexBuffer = buffer;
 }
diff --git a/src/shapes/metrics_path.cpp b/src/shapes/metrics_path.cpp
index 3574eef..dd9fff3 100644
--- a/src/shapes/metrics_path.cpp
+++ b/src/shapes/metrics_path.cpp
@@ -1,3 +1,4 @@
+#include "rive/core/type_conversions.hpp"
 #include "rive/shapes/metrics_path.hpp"
 #include "rive/renderer.hpp"
 #include <math.h>
@@ -34,12 +35,15 @@
 }
 
 void MetricsPath::lineTo(float x, float y) {
-    m_Parts.push_back(PathPart(0, m_Points.size()));
+    // TODO: resize PathPart to allow for larger offsets
+    auto offset = castTo<uint8_t>(m_Points.size());
+    m_Parts.push_back(PathPart(0, offset));
     m_Points.emplace_back(Vec2D(x, y));
 }
 
 void MetricsPath::cubicTo(float ox, float oy, float ix, float iy, float x, float y) {
-    m_Parts.push_back(PathPart(1, m_Points.size()));
+    auto offset = castTo<uint8_t>(m_Points.size());
+    m_Parts.push_back(PathPart(1, offset));
     m_Points.emplace_back(Vec2D(ox, oy));
     m_Points.emplace_back(Vec2D(ix, iy));
     m_Points.emplace_back(Vec2D(x, y));
@@ -157,12 +161,12 @@
                 pen = &to;
 
                 int index = (int)m_CubicSegments.size();
-                part.type = index + 1;
+                part.type = castTo<uint8_t>(index + 1);
                 float partLength =
                     segmentCubic(from, fromOut, toIn, to, 0.0f, 0.0f, 1.0f, m_CubicSegments);
                 m_Lengths.push_back(partLength);
                 length += partLength;
-                part.numSegments = m_CubicSegments.size() - index;
+                part.numSegments = castTo<uint8_t>(m_CubicSegments.size() - index);
                 break;
             }
         }
