This article is pretty helpful, I have a criticism. The human readable label for p2sh addresses says they are "wrapped segwit" addresses. I think that's a poor label because they are much more generic than that. They can encode any script and were used for multisig transactions long before segwit came out. Consider labelling these "script addresses" because they are the hash of a script and must be spent by satisfying the conditions of that script.
hmm, thanks for the advice. I'll add a note about that :).