the code authored in 52ee7372765e272aad7cb52b9dceecf9d0145f55 (probably)
worked in the browser due to string to numeric type autoconversion but
didn't typecheck during container build.
namely, Object.keys(this.activeKeys) will always return a string[];
however, we need number[] for the sendData() call to typecheck.
this replaces the untyped object holding active keys with a Set<number>,
which is more expressive anyway.