Use completing-read with an alist

I found an Emacs Lisp snippet today which might be useful:

(let ((choices '(("Baby Boomers" . "boomer")
		 ("Generation X" . "x")
		 ("Millennials / Generation Y" . "y")
		 ("Zoomers / Generation Z" . "zoomer")
		 ("Generation Alpha" . "hey, alpha!"))))
  (alist-get 
    (completing-read "Your generation: " choices )
    choices nil nil 'equal))

This way you can prompt the user to select an item from an association list ("alist") of choices, where the returned value is not the displayed key, but the value associated with that key. (Example: The user selects "Baby Boomers", but the returned value is "boomer".)

I found the origin of the snippet by following this trail:

Prompting With The Interactive Command

Emacs: Let's surround! - Prompt the user for inputs

How to return the value instead of key by completing-read

An Alternate Completing Read