Of course it should be available to all, and the quality should be better!
Why always reserve something for a certain category? If kids go to state school, they should all be treated the same. Fine if some parents don't want to pay for extra, like school trips and sport, but this is going backward.
By only giving free benefits like the school meal to a certain category, you push people not to work! At least if all the kids have the same free meals, the working parents can see some kind of help, it's not always the same who get everything