pull down to refresh

Continuing to my refactor of our payments "engine." Most of what's left are:
  • sanity asserts and constraints of various kinds
  • overlaying our existing subtree exclusion privacy pattern for the api
  • polish
  • testing (might vibe some automated tests) and verifying behavior of edge cases
  • migrating the old data