You've just about got the breaking points listed.
The original ][ machines could add ][+ ROMs to get Applesoft, which was a requirement for several programs. Likewise, they could be expanded with memory up to 64k,which became a requirement later. An 80 column card (and whatever other peripherals desired... Z80, printer card, serial, etc.) often rounded out the machine.
Then the //e came along. It had a standard 80 column card and came with 64k memory standard; most had 128k. It had new ROMs and character set that started to allow software that was specifically targeted for it to be incompatible with the earlier machines. A little later came the enhanced //e, which had an updated CPU with a couple new instructions. So the //e (especially the enhanced one) was a departure point where it started to become important to "upgrade." The IIc was effectively a //e in a smaller case with some built-in peripherals (serial ports, 128k memory, etc.), so it could run all the //e-specific software.
The IIgs of course was another departure... new ROMs, 16bit CPU, more memory standard, etc. If software was written specifically for it, there was no looking back. A new motherboard was sold for a time that would upgrade the //e's case to actually become a IIgs. All the old adapter cards remained compatible.
The original ][ machines could add ][+ ROMs to get Applesoft, which was a requirement for several programs. Likewise, they could be expanded with memory up to 64k,which became a requirement later. An 80 column card (and whatever other peripherals desired... Z80, printer card, serial, etc.) often rounded out the machine.
Then the //e came along. It had a standard 80 column card and came with 64k memory standard; most had 128k. It had new ROMs and character set that started to allow software that was specifically targeted for it to be incompatible with the earlier machines. A little later came the enhanced //e, which had an updated CPU with a couple new instructions. So the //e (especially the enhanced one) was a departure point where it started to become important to "upgrade." The IIc was effectively a //e in a smaller case with some built-in peripherals (serial ports, 128k memory, etc.), so it could run all the //e-specific software.
The IIgs of course was another departure... new ROMs, 16bit CPU, more memory standard, etc. If software was written specifically for it, there was no looking back. A new motherboard was sold for a time that would upgrade the //e's case to actually become a IIgs. All the old adapter cards remained compatible.