Use uint32_t for core IDs
diff --git a/include/rive/artboard.hpp b/include/rive/artboard.hpp
index 5a8aa2f..003b72c 100644
--- a/include/rive/artboard.hpp
+++ b/include/rive/artboard.hpp
@@ -63,7 +63,7 @@
         ~Artboard();
         StatusCode initialize();
 
-        Core* resolve(int id) const override;
+        Core* resolve(uint32_t id) const override;
 
         // EXPERIMENTAL -- for internal testing only for now.
         // DO NOT RELY ON THIS as it may change/disappear in the future.
diff --git a/include/rive/core_context.hpp b/include/rive/core_context.hpp
index 1711f38..d8d7a4d 100644
--- a/include/rive/core_context.hpp
+++ b/include/rive/core_context.hpp
@@ -1,11 +1,13 @@
 #ifndef _RIVE_CORE_CONTEXT_HPP_
 #define _RIVE_CORE_CONTEXT_HPP_
 
+#include "rive/rive_types.hpp"
+
 namespace rive {
     class Core;
     class CoreContext {
     public:
-        virtual Core* resolve(int id) const = 0;
+        virtual Core* resolve(uint32_t id) const = 0;
     };
 } // namespace rive
-#endif
\ No newline at end of file
+#endif
diff --git a/src/artboard.cpp b/src/artboard.cpp
index d44e43a..c4779ff 100644
--- a/src/artboard.cpp
+++ b/src/artboard.cpp
@@ -278,7 +278,7 @@
     m_NestedArtboards.push_back(artboard);
 }
 
-Core* Artboard::resolve(int id) const {
+Core* Artboard::resolve(uint32_t id) const {
     if (id < 0 || id >= static_cast<int>(m_Objects.size())) {
         return nullptr;
     }