Most of the APIs of the framework are built using classes
with inheritance. We use an approach whereby we define
very high-level APIs in our base classes, then specialize
them iteratively in subclasses. For example,
our render objects have a base class (RenderObject)
that is agnostic regarding the coordinate system,
and then we have a subclass (RenderBox)
that introduces the opinion that the geometry should be based
on the Cartesian coordinate system (x/width and y/height).

The ScrollPhysics class chains instances to compose
the physics that apply to scrolling dynamically at runtime.
This lets the system compose, for example, paging physics
with platform-specific physics, without the platform having to be
selected at compile time.