18-LAB / Documentation

4. Use richer fields

The HUD already implements these fallbacks in render(). Do not detect a server brand and assume every extension is present: check each field independently.

Pointer vosu path Fallback
/keys keys.all: ordered inputs with name, isPressed, count, pressedAt, releasedAt keys.k1, k2, m1, m2; upstream tosu supplies them via precise v2.
/play/pressHitErrors Note-press timing array /play/hitErrorArray only when the extension is absent.
/play/releaseHitErrors osu!mania hold-note release timing array No equivalent; show a dash rather than inventing releases.
/beatmap/stats/hitWindow Optional miss, meh, ok, good, great, perfect judgement boundaries Available in both published v2 schemas; show a dash when the relevant boundary is absent or nonpositive.

vosu only keys.all and separate press/release arrays are optional additions in the published source used here. beatmap.stats.hitWindow is shared with tosu, not a vosu-only extension.

Preserve meaning, not just display continuity

See vosu extensions and schema. The source contracts are vosu v2 and tosu v2.

Next: declare settings.

Edit this page on GitHub