Save a domain product inside the domain's transaction
What It Does
Accounting supplies database functions for saving and retiring a domain-owned common product. The domain supplies session context, the enclosing transaction and the extension write. The cited product decision requires common and specialized records to share that commit boundary.
The Flow
When Something Fails
The functions raise errors for invalid context, ownership, input or state. The domain must abort its transaction if the later extension write fails. The available tests establish Accounting's function behavior but do not execute that complete failure through a real domain, so the caller hop remains unverified. Owned-template work and accounting setup use separate API operations.
Open Design Questions
The HTTP and database paths differ in omitted values, kind activity, audience admission and bundle allocation. Product must choose the shared contract, and an executable domain test must prove rollback after an extension failure.