Nit: `options.hash` isn't documented in the ctor args, and `this._hash` isn't declared on the prototype -- unlike the other fields here