data() :: json() | json_value()
json() :: %{required(String.t()) => json_value()}
json_value() :: nil | true | false | list() | float() | integer() | String.t() | %{}