Como dijo Kim Stebel, la solución habitual es utilizar lo que su aplicación ya tiene, que es la mayoría de las veces un motor de base de datos, sea relacional o no. Esto se debe a que la mayoría de las veces, las preferencias del usuario aparecen después de que otros datos persisten.
Pero en su caso, parece que el sistema de archivos es su motor de persistencia, y no parece necesitar transacciones o un rendimiento de lectura/escritura excesivamente bueno para la característica discutida, así que mantendría esa parte lo más simple posible hasta que se necesite algún otro motor de persistencia: simplemente serializaría el objeto de preferencia del usuario a algún formato de texto (JSON o XML viene a la mente) y los guardaré en el sistema de archivos: sin mapeo por ahora, sin elección prematura (e incluso la posibilidad de corromper)^W edite su preferencia de usuario con su editor de texto favorito, directamente en el servidor, sí;)
Dicho esto, hay un montón de buen marco para ese trabajo, en Scala o en el ecosistema de Java.
Para el mapeo XML, no creo que la biblioteca nativa de Scala sea la mejor opción. Es fácil producir una estructura XML con él, pero el mapeo de un objeto XML a Scala es, en el mejor de los casos, horrible. XStream (http://x-stream.github.io/) es bastante bueno para eso, pero tendrá que usar la colección de Java, o agregar la suya (y esa no era mi idea de la 'más simple').
Para el mapeo JSON, hay muchas bibliotecas realmente buenas en Scala. Google y otros stackoverflowers pueden tener más detalles, pero sé que hay por lo menos estos dos:
creo que sirve,
Cuando se trataba de mapear, YAML es lo primero que se me viene a la mente en el contexto del juego. La biblioteca Snakeyaml ya está en su classpath ... Al igual que la biblioteca Gson. – sdespolit