I would add segwit. Which virtually increased block size and was not implemented in bcash and other forks.
It is somehow a on chain scale. So now we have on chain and off chain scale solutions, with lighting network
SegWit falls under the first group (
main scaling should occur on second layer and the first layer should scale
without hard fork), otherwise you are right that SegWit also offers an on-chain scaling by increasing the block size but it is through the soft-fork as I said in the first category which makes it a limited scaling.
It's a bit off-topic but bcash has implemented more of SegWit than you know. From the SegWit way of transaction serialization for sighash all the way to the bech32 address format.
