When getting a move wrong, add a feedback panel with an option to 'Add (wrong san) as alternative'.
Might require refactoring logic so that fail() is not called immediately, but only after the user sees the "Add as alternative" button and declines it.