Equal (Object.==) for as long as the shape stays the same: a reader builds its own shape again only when this changes.
@override Object get solidKey => shapeKey;