increment(distinct_id, prop, by, modifiers, callback) {
        // TODO extract to ProfileHelpers

        var $add = {};

        if (typeof(prop) === 'object') {
            if (typeof(by) === 'object') {
                callback = modifiers;
                modifiers = by;
            } else {
                callback = by;
            }
            for (const [key, val] of Object.entries(prop)) {
                if (isNaN(parseFloat(val))) {
                    if (this.mixpanel.config.debug) {
                        this.mixpanel.config.logger.error(
                            "Invalid increment value passed to mixpanel.people.increment - must be a number",
                            {key, value: val}
                        );
                    }
                } else {
                    $add[key] = val;
                }
            };
        } else {
            if (typeof(by) === 'number' || !by) {
                by = by || 1;
                $add[prop] = by;
                if (typeof(modifiers) === 'function') {
                    callback = modifiers;
                }
            } else if (typeof(by) === 'function') {
                callback = by;
                $add[prop] = 1;
            } else {
                callback = modifiers;
                modifiers = (typeof(by) === 'object') ? by : {};
                $add[prop] = 1;
            }
        }

        var data = {
            '$add': $add,
            '$token': this.mixpanel.token,
            '$distinct_id': distinct_id
        };

        data = merge_modifiers(data, modifiers);

        if (this.mixpanel.config.debug) {
            this.mixpanel.config.logger.debug("Sending the following data to Mixpanel (Engage)", { data });
        }

        this.mixpanel.send_request({ method: "GET", endpoint: "/engage", data: data }, callback);
    }
people.increment(distinct_id, prop, by, modifiers, callback)
        ---
        increment/decrement properties on an user record in engage

        usage:

            mixpanel.people.increment('bob', 'page_views', 1);

            // or, for convenience, if you're just incrementing a counter by 1, you can
            // simply do
            mixpanel.people.increment('bob', 'page_views');

            // to decrement a counter, pass a negative number
            mixpanel.people.increment('bob', 'credits_left', -1);

            // like mixpanel.people.set(), you can increment multiple properties at once:
            mixpanel.people.increment('bob', {
                counter1: 1,
                counter2: 3,
                counter3: -2
            });