Use _map suffixed virtual fields to support nested data in ecto
Add value to map only if it's not nil
Use erlang :maps module