-spec channel_id(binary(), atom(), term()) -> binary().
-spec init(binary(), map()) -> map().
-spec player_joined(binary(), {integer(), integer()}, map()) -> ok.
-spec player_left(binary(), {integer(), integer()}, map()) -> ok.
-spec player_zone_changed(binary(), {integer(), integer()}, {integer(), integer()}, non_neg_integer(), map()) -> ok.