Layer Architecture

┌──────────────────────────────────────────────┐
│  SHACHI GAME CODE                            │
│  (Your game. C or generated.)                │
├──────────────────────────────────────────────┤
│  SHACHI SDK (this prescription)              │
│  ┌────────────┬────────────┬───────────────┐ │
│  │ shachi-gfx │ shachi-anim│ shachi-scene  │ │
│  │ Multi-pass │ Skeletal   │ Task/object   │ │
│  │ Tex GC     │ NJA loader │ management    │ │
│  │ Fog/bump   │ Blending   │               │ │
│  └────────────┴────────────┴───────────────┘ │
├──────────────────────────────────────────────┤
│  KOS (Unchanged)                             │
│  pvr_*, maple_*, spu_*, gdrom_*, etc.        │
├──────────────────────────────────────────────┤
│  HARDWARE (SH-4 + PVR2 + AICA + GD-ROM)     │
└──────────────────────────────────────────────┘

SHURIKEN+ (Mac-side tools, NOT on Dreamcast):
  pvr-convert, nja-convert, pvr-validate, dc-lint, disc-build

Shachi sits ON TOP of KOS. It does not fork, wrap, or replace KOS. Every KOS function remains directly callable. Shachi adds what KOS lacks.