For situations that aren't codified into law like that, it can more legitimately be modulated according to how the service made you feel, from zero to "keep the change" to a couple bucks to sky's the limit.
The former should be solved by abolishing tipping. The latter should be solved by technology that's somehow as frictionless as cash.