anchor.diff:    /// [SliverConstraints.scrollOffset] is zero.
     ///
     /// This must be between zero and [paintExtent]. It defaults to [paintExtent].
  +  ///
  +  /// This value is typically 0 when outside of the viewport and grows or
  +  /// shrinks from 0 or to 0 as the sliver is being scrolled into and out of the
  +  /// viewport unless then sliver wants to achieve a special effect and push
  +  /// down the layout start position of subsequent slivers before the sliver is
  +  /// even scrolled into the viewport.
     final double layoutExtent;
   
     /// The (estimated) total paint extent that this sliver would be able to
  
positive.code:   /// If this is non-zero after [RenderSliver.performLayout] returns, the scroll
    /// offset will be adjusted by the parent and then the entire layout of the
    /// parent will be rerun.
    ///
    /// If the parent is also a [RenderSliver], it must propagate this value
    /// in its own [RenderSliver.geometry] property until a viewport which adjusts
  
negative.code:   ///
    /// For example, if the sliver wishes to paint visually before its layout
    /// position, the [paintOrigin] is negative. The coordinate system this sliver
    /// uses for painting is relative to this [paintOrigin]. In other words,
    /// when [RenderSliver.paint] is called, the (0, 0) position of the [Offset]
    /// given to it is at this [paintOrigin].
    ///
    /// The coordinate system used for the [paintOrigin] itself is relative
    /// to the start of this sliver's layout position rather than relative to
    /// its current position on the viewport. In other words, in a typical
    /// scrolling scenario, [paintOrigin] remains constant at 0.0 rather than
    /// tracking from 0.0 to [SliverConstraints.viewportMainAxisExtent] as the
    /// sliver scrolls past the viewport.
    ///
    /// This value does not affect the layout of subsequent slivers. The next
    /// sliver is still placed at [layoutExtent] after this sliver's layout
  