public static unsafe ref T GetDataRef <T>(this IBlackboard bb, ulong componentStableHash, int componentDataOffset) where T : struct { var componentPtr = (byte *)bb.GetPtr(componentStableHash); // TODO: type safety check var dataPtr = componentPtr + componentDataOffset; return(ref UnsafeUtilityEx.AsRef <T>(dataPtr)); }