Implement a Level of Detail (LOD) abstraction for shape rendering at different zoom levels to improve performance, especially when zoomed out with many complex shapes.
## Problem Many shapes already implement ad-hoc zoom-level checks to simplify rendering when the user is zoomed out (e.g., forcing solid strokes, hiding handles, disabling text shadows). These decisions are scattered across individual `ShapeUtil` implementations with no unifying abstraction. At extreme zoom levels — especially when hundreds of complex shapes or images are visible — React-based rendering becomes a bottleneck. Projects built on tldraw (e.g., Luma's canvas) have needed to implement their own performance optimizations for this case, such as rendering canvas textures instead of full React component trees. ## Proposed solution Add a first-class **level-of-detail (LOD)** abstraction to `ShapeUtil` that lets shapes declare alternative rendering strategies at different zoom thresholds. This could include: 1. **A `ShapeUtil` method for LOD rendering** — e.g., `renderAtLOD(shape, level)` or a set of named rendering tiers that shapes can opt into 2. **Canvas texture support*