seems like a lot of code, but this is 95% boilerplate additions copied
from other similar collections packages. Some noteworthy differences:
* teamsChats does not handle metadata, so all metadata, delta, and previous
path handling was removed
* teamsChats does not produce tombstones
* chats are never deleted, so no "removed" items are tracked
* all chats gets stored at the prefix root, so no "containers" are iterated, and therefore only one collection is ever produced.
This means that, overall, the boilerplate here is much reduced compared to
boilerplate in similar packages.