What is the correct syntax for using merge to create an array of field values from an element query?
Just put the field names in parentheses:

{% set options = [] %}
{% for event in events %}
  {% set options = options|merge({ (event.slug):(event.eventTitle) }) %}
{% endfor %}


And now I can output them in the format Craft wants for a form field:

{{ forms.selectField({
  label: "Choose event"|t,
  name: "eventSlug",
  options: options,
}) }}