Event when Map type changes
@see Yex.SharedType.observe/1 @see Yex.SharedType.observe_deep/1
@type change() :: %{action: :add, new_value: term()} | %{action: :delete, old_value: term()} | %{action: :update, old_value: term(), new_value: term()}
@type keys() :: %{required(String.t()) => %{}}
@type t() :: %Yex.MapEvent{ keys: keys(), path: [number() | String.t()], target: Yex.Map.t() }