defaultStoreFrame function

StoreFrame defaultStoreFrame(
  1. StoreShot shot
)

The frame a project that declares none gets: chrome everywhere, a composition only where geometry forces one.

The rule turns on a distinction. Inventing a ground and a device body is a marketing decision and stays opt-in — but a status bar is not marketing. It is the one piece of a real screenshot a flutter_tester cannot draw, and a store set without one reads as a mockup of the app rather than a picture of it. So every set is framed now; what a declaration decides is whether the frame is a composition or a pane of glass.

Apple's sets keep their exact pixels either way: an uncomposed canvas is its device's, so PlainStoreFrame draws the capture 1:1 and adds the bar.

Implementation

StoreFrame defaultStoreFrame(StoreShot shot) =>
    shot.canvas == StoreCanvas.of(shot.device)
    ? PlainStoreFrame(shot)
    : DefaultStoreFrame(shot);