camelCase -> snake_case for options
throw by default on duplicate keys (and reserved ones)