The customers holding a grant on the program, newest grant first.
Every grant the customer holds, any number per vendor, by vendor then program id.
Self-bust after a write: the folded get entry by exact key, which works
in memory mode where tag invalidation no-ops, then every other search.
Virtual account pages carry the record tag of the program each account was
placed in; Victor account pages carry victorLedgerProgramIds, a dart
program's provider ids before and after the write.
Reads for
b2b.programand its grants (PROGRAM_ROUTING.md § 3.1, § 3.3).searchreads through a collection-tagged cache that ProgramQueryService.invalidate busts;getfolds intosearch. The grant reads are uncached, since routing decisions read them.