Priority 3: Animation
shachi-anim (NJA Loader + Skeletal Playback)
What: Load NJA model/motion files and play skeletal
animation. Why: NJA format is ASCII C — trivially
parseable. Brings Ninja-level animation to KOS without the precompiled
black-box dependency. Reference:
codex/ninja/OVERVIEW.md (playback pipeline),
codex/ninja/API_SURFACE.md (data structures).
Scope: ~500 lines C. - NJA model parser (or: just
#include the .nja files like Sega did — zero parsing) - Motion
evaluator: interpolate POSITION/ROTATION keyframes per joint - Matrix
accumulator: build per-joint world matrices via hierarchy traversal -
Draw callback: extract joint positions, then draw per-node with
pvr_prim - Motion blending (cross-fade between two
motions)