add 'required_keys' to match existence of non-string values
add support for float value counter
add support for push value as list