Packs: one per API
Each API is modeled as a pack — Stripe, Twilio, GitHub, Deck, and so on. A pack captures everything that makes that service itself:Objects & lifecycle
The resources the API exposes and the state machine they move through —
pending → succeeded,
queued → running → completed, and the transitions between.Behavior & fidelity
Which transitions emit which webhooks, the real error envelope, magic values, and the values the
API returns from outside its own control. This is the hand-modeled work that makes a sandbox
faithful instead of a guess.
What you interact with
You don’t think about internals day to day. You install a plugin, point the vendor’s SDK at the sandbox, and drive a control handle:What’s faithful vs what you control is the throughline of these concepts: the API’s own data (ids,
status, timestamps) is faithful and unfakeable; the values it gets from outside its control (a
balance, a transcript, a score) are yours to set. Values you control is where
that line gets sharp.