← All pillars
What needs cooperation

The in-app half

Optional, and deliberately so. Every reading and every pattern act elsewhere on this site runs against an application that references nothing — this package buys the handful that cannot be taken from outside a process.

What it adds

  • Whether this process's idea of the display is trustworthy, in a sentence a report prints.
  • An element to a PNG — measured, arranged and updated in that order.
  • What a capture is drawn on, from a brush the application declares rather than from the system palette, which answers white on a machine whose window is dark.
  • The laid-out tree and what was drawn, written only where the harness asked.
  • Every popup under a window held open for as long as a run lasts — a preview has no hand to click with.
  • A brush that may cross to a capture thread, and bounded work on the application's own dispatcher.

Why it is a separate package

It references the engine not at all. An application that referenced the engine would ship a test harness to its users, and the two halves are separate assemblies precisely so an application takes the one it needs without inheriting the other.

And it is silent in a release

An application shipped to its users reports nothing and writes no file. That is what makes the protocol safe to leave in, which is the only version of this idea that survives contact with a release branch.