data() :: nil | true | false | list() | float() | integer() | String.t() | [data()] | object()
json_path() :: String.t()
object() :: %{required(String.t()) => data()}