Transactions: lazy evaluation of transaction_id uuid_v4(), refactoring, get_emit_options() handles most of the complexity to provide optimized options
Transactions: get_transaction() prevent unused objects on many new Transaction(); inline Transaction..emit()