There are things in here I had not considered before. I often abstract away to make something "easier for me" to think about, but I rarely consider "what is likely to change" and hide that behind a layer. Thank you for sharing.
Bonus tip: any time your team has a heated argument about any decision, that is a strong contender for abstraction.
As in, create an abstraction so everyone gets to do it their way and you don't have to debate?
I think more like something that gives rise to an argument might be more multifaceted issue than it seems like to any given single participant?
Or the heated debate might be an indication that it's not clear which choice is the right one, so we use an abstraction to make it easier to change our minds later if it turns out our choice was wrong.