public static BaseNCodec of(String alphabet) {
        return new BaseNCodec(alphabet);
    }
@Test
    void codec_generalizes_down_to_base_10() {
        var b10 = BaseNCodec.of("0123456789");
        verifyRoundtrip(b10, unhex("00"), "0");
        verifyRoundtrip(b10, unhex("000f"), "015");
        verifyRoundtrip(b10, unhex("ffff"), "65535");

        // A large prime number: 2^252 + 27742317777372353535851937790883648493 (Curve25519 order)
        var numStr = "7237005577332262213973186563042994240857116359379907606001950938285454250989";
        var numBN = new BigInteger(numStr);
        verifyRoundtrip(b10, numBN.toByteArray(), numStr);
    }