One breath
A breath has six steps. First, claim. Second, measure the inflow. Third, read the price: the program reads the pool reserves (the bonding curve while the coin is on the curve, the migrated pool afterwards) and computes the lamports that one million base units would cost at the margin. Fourth, compute the ratio r = price รท basis, where basis is the volume weighted price of every unit the vessel has ever bought; on the very first breath, before any purchase, r is defined as 1. Fifth, spend: a fraction f(r) of inflow plus reserve is swapped for the coin, the purchased units are added to holdings and the basis is updated, and the unspent remainder becomes the new reserve. Sixth, burn: if r is at least 1.25, a fraction g(r) of the holdings after the purchase is burned from the vessel's token account. The breath then writes its sequence number, the new reserve, the new holdings, the new basis, the last price, and the state, and emits a Breath event. The whole thing is one transaction. If any step fails, nothing is written.