Builds a grantPromo operation: issues expiring marketing credit. It credits the user's
promo account against PROMO_FLOAT; promo credit needs no USD backing, is drawn before the
buyer's own money on the next spend, and is spendable but never paid out. After expiresAt
the worker's expiry sweep reverses whatever is unspent, so the timestamp must be strictly in
the future (a past one would let the sweep claw the credit straight back) and no more than
five years out. Restricted to a system or operator actor — the operation mints credit
into an arbitrary account. It has no rejected path: every failure is a thrown fault. A retry
under the same idempotencyKey returns the original grant as duplicate.
Builds a
grantPromooperation: issues expiring marketing credit. It credits the user'spromoaccount againstPROMO_FLOAT; promo credit needs no USD backing, is drawn before the buyer's own money on the next spend, and is spendable but never paid out. AfterexpiresAtthe worker's expiry sweep reverses whatever is unspent, so the timestamp must be strictly in the future (a past one would let the sweep claw the credit straight back) and no more than five years out. Restricted to asystemoroperatoractor — the operation mints credit into an arbitrary account. It has no rejected path: every failure is a thrown fault. A retry under the sameidempotencyKeyreturns the original grant asduplicate.