We pay good money for a service then the airlines chose when, how, and even if they are going to provide that service and if they don't provide the service as described they decide when, how, and even if they are going to compensate us.
We should turn this system on its head. No more paying in advance. We book our ticket and the airline provides the service. If it is exactly as and when described we pay them full price. If not, we decide when, how, and even if we are going to pay them.
Air Canada isn't an airline. It's primary business is milking the Canadian tax payer for incentives. They pretend to be an airline as an excuse to do that. That's why they treat their customers as an inconvenience. We distract them from their main business.