What problem does it solve? LazyColumn, LazyRow, and lazy grids in Jetpack Compose suffer from scroll jank, dropped frames, lost item state on insert/remove/reorder, and silently broken animateItem() animations when items lack stable keys, contentType discriminators, or stable composable parameters. ## Core Features & Use Cases - Stable item keys: Audits every items() call and enforces server-side stable IDs instead of index-based, random UUID, or hashCode keys. - contentType for mixed feeds: Adds type discriminators so heterogeneous feeds (cards, headers, ads) reuse cached compositions like RecyclerView view-types. - animateItem() validation: Ensures Modifier.animateItem() is paired with stable keys so insert/remove animations actually run. - Allocation hoisting: Moves painters, borders, and shapes out of the items lambda to reduce per-item allocation at scroll velocity. - Use Case: A mixed feed of cards, headers, and ads stutters while scrolling; apply key = { it.id }, contentType = { it::class }, and Modifier.animateItem() to each row, then verify with Layout Inspector recomposition counts. ## Quick Start Ask the assistant to fix the scroll jank and lost item state in your LazyColumn by adding stable keys, contentType, and animateItem to the items block.