Cash is king. Attempts to go cashless range from the stupid to the extremely stupid. The closest they could come without ticking people off a lot would be to sell the "prepaid debit cards" for *any amount* (not currently available) *on board* (impractical) in unlimited quantities.
A good point-of-sale system can automate the accounting sufficiently that it renders a lot of the standard cash pilfering methods nearly impossible or very quickly identifiable, removing most of the reasons for Amtrak to want to go "cashless". Just implement a normal point of sale system and don't try to prevent people from using cash. That just makes people *mad*.