Two points:

1. Is there a reason to have the user be configurable? Generally services which don't run as root should just allocate a user to themselves and use it unconditionally
2. The `singleton` syntax still exists in quite a few places, but it's deprecated for `users.extraUsers`. Instead you want something like `users.extraUsers.teamspeak = { description = ... }`