typecheq
a typing test whose scoring core is written in C and compiled to WebAssembly
WPM0.0
Accuracy0.0%
Edit Distance0
Time Left30s
Finished session
Certified result
CRC32
This CRC32 checksum detects accidental changes to the local result summary. It is not a cryptographic signature or proof of authenticity.
Live WASM State (JSON)
What am I looking at?
- meta
- Identifies the schema and codec versions this payload conforms to. Consumers should validate
meta.schema_versionbefore parsing. - session
- The complete state of the current attempt as of this render:
passage,input,diff,analytics, andtimer. - session.diff.data
- The per-position diff payload, encoded per the codec named in
meta.codecand detailed insession.diff.encoding/session.diff.symbol_layout: each ofsession.diff.lengthpositions is one 7-bit symbol — a 2-bit status code in bits 0-1, a saturated 4-bit attempt count in bits 2-5 (session.diff.attempts.max_value), and a 1-bit reflow flag in bit 6 — packed as a cross-byte bitstream persession.diff.packed_bytes, then base64-encoded per RFC 4648. Decode order matches passage order. - session.diff.data — reflow flag (bit 6)
- Scoring realigns the entire typed prefix on every keystroke, so a character's status can change well after you typed it — one stray key can be reinterpreted as an insertion, turning a run of red back to green. This bit marks the positions a single keystroke reinterpreted, and is set for exactly the one render that follows it. Positions that just came into or went out of scope by being typed or erased are never flagged: those changes are already evident from the caret. The bit clears itself on the next render with no new input.
- session.diff.attempts
- Historical aggregates over every passage position ever attempted:
total, the single most-retried position (max/max_position), and how many positions were ever revised (revised). These raw counters survive backspacing and are distinct from the saturated, cursor-local attempt counts embedded insession.diff.data. They are mirrored intoresult.summaryasattempts_*once finalized. - session.analytics
- Distributional statistics over instantaneous per-keystroke WPM, maintained online per
meta.engine's accumulator. Mirrored intoresult.summaryonceresult.finalizedis set. - session.timer
session_time_msis the single capped session clock used for scoring, andallowed_time_msis its inclusive upper bound. The legacyelapsed_ms/duration_msfields mirror those values so consumers can validate the timing contract. Finalized values are also mirrored intoresult.summaryand covered by the result checksum.- result
nulluntilresult.finalized. Once set,result.certification.hashis the checksum — perresult.certification.algorithm— of the exact string inresult.certification.input.