In that case, can the airline decide to simply not run the flight and keep everyone's money? It's a contract because both sides have accepted some number of terms. If it weren't you would forego all sorts of protections. When you (reasonably) want those back... guess what? Disputes are decided on the terms of the (sales) contract. How else would it work?