diff --git a/source/RobotAPI/libraries/armem/core/wm/memory_definitions.h b/source/RobotAPI/libraries/armem/core/wm/memory_definitions.h
index ae338328d4bf0bbf38a89e3d2d32e2fa247a187d..dcc82878286cf3387e0381ca21312f76bff89bcb 100644
--- a/source/RobotAPI/libraries/armem/core/wm/memory_definitions.h
+++ b/source/RobotAPI/libraries/armem/core/wm/memory_definitions.h
@@ -47,6 +47,32 @@ namespace armarx::armem::wm
         bool equalsDeep(const EntityInstance& other) const;
     };
 
+    /**
+     * @brief Entity instance with a concrete ARON DTO type as data.
+     *
+     * This is the return type of EntityInstance::withDataAs<AronDtoT>().
+     *
+     * Usage example:
+     * @code
+     * #include <RobotAPI/libraries/aron/common/aron/time.aron.generated.h>
+     *
+     * armarx::arondto::Duration duration;
+     * duration.microSeconds = 1000;
+     *
+     * armarx::armem::wm::EntityInstance instance;
+     * instance.data() = duration.toAron();
+     *
+     * const armarx::armem::wm::EntityInstanceBase<armarx::arondto::Duration> cast =
+     * instance.withDataAs<armarx::arondto::Duration>();
+     *
+     * const armarx::arondto::Duration& durationOut = cast.data();
+     *
+     * assert(durationOut.microseconds == 1000);
+     * @endcode
+     */
+    template <class AronDtoT>
+    using EntityInstanceBase = base::EntityInstanceBase<AronDtoT, EntityInstanceMetadata>;
+
     /**
      * @brief Client-side working memory entity snapshot.
      * @see base::EntitySnapshotBase
@@ -54,6 +80,7 @@ namespace armarx::armem::wm
     class EntitySnapshot :
         public base::EntitySnapshotBase<EntityInstance, EntitySnapshot>,
         public detail::FindInstanceDataMixinForSnapshot<EntitySnapshot>
+
     {
     public:
         using base::EntitySnapshotBase<EntityInstance, EntitySnapshot>::EntitySnapshotBase;