two-way MapChangeTypeAdapter