Issue #3: Move common functions to a world_canvas_utils package