Acciones con nombre, así que el juego pregunta por 'move_left' y nunca por una tecla o un botón. Los mismos cuatro nombres cubren WASD, la cruceta y el stick sin ningún if, y useVector los convierte en una dirección con una zona muerta redonda, que es lo que evita que una diagonal suave se quede en línea recta.
El mapa vive en project.json, junto al tamaño de la ventana, y gameOptionsFromProject es el único sitio donde se convierte en un juego en marcha. Haz clic en una fila y pulsa una tecla o un botón para cambiarla; el cambio se guarda, así que sigue ahí al recargar. Abre la otra pestaña para ver el fichero.