Perhaps a nitpick, but the argument name "target" implies to me that key value store configuration will be written into this "target" configuration.  Your comments obviously indicate this is not the case but you might want to change the name just for clarity.