Come detto da Kim Stebel, la solita soluzione consiste nell'utilizzare ciò che l'applicazione ha già, che è il più delle volte un motore di database, essendo relazionale o meno. Questo perché la maggior parte delle volte le preferenze dell'utente arrivano dopo alcuni altri dati in cui sono già persistenti.
Ma nel tuo caso, sembra che il file system sia il tuo motore di persistenza, e non sembra che ti servano transazioni o prestazioni di lettura/scrittura eccessivamente buone per la funzionalità discussa, quindi terrei la parte il più semplice possibile fino a quando non sarà necessario un altro motore di persistenza: serializzerò l'oggetto preferenza utente su un formato testo (JSON o XML mi viene in mente) e li salverò nel filesystem: nessuna mappatura infernale per ora, nessuna scelta prematura (e persino la possibilità di corrompere^W modifica le preferenze dell'utente con il tuo editor di testo preferito, direttamente sul server, sì;)
Detto questo, c'è un buon numero di framework per quel lavoro, in Scala o dall'ecosistema Java.
Per la mappatura XML, la libreria nativa di Scala non è la scelta migliore. È facile produrre una struttura XML con esso, ma la mappatura da XML a oggetto Scala è al massimo orribile. XStream (http://x-stream.github.io/) è abbastanza buono, ma dovrai utilizzare la raccolta Java o aggiungere la tua (e questa non era la mia idea del "più semplice").
Per la mappatura JSON, esistono diverse librerie molto utili in Scala. Google e altri stackoverflowers possono avere maggiori dettagli, ma so che c'è almeno questi due:
Speranza che aiuta,
Quando si trattava di mappare, YAML è il primo che mi è venuto in mente nel contesto del gioco. La libreria Snakeyaml è già sul classpath ... Come la libreria Gson. – sdespolit