The current DisplayList design is built around a dispatch stream where the clip, transform, and painting attributes are stateful. This is standard practice for the clip and transform management where these attributes are set to control subsequent painting, but it is not as common for the painting attributes. In particular, both ui.Canvas and SkCanvas use Paint objects to maintain painting attributes and this works well for developers to encapsulate the necessary attributes that might apply to only a single rendering call without having to worry about what state the builder/recorder is in.