What problem does it solve? Alternate forms like Unown letters or Alolan variants need their own species identity for sprites, dex tracking, and battles, yet must still group under one printed dex row. This Skill defines the id numbering scheme and the exact steps to add a form without breaking stored player data. ## Core Features & Use Cases - Id numbering scheme: Forms live in the band past one million using the formula 1000000 + dexNumber * 100 + formIndex, keeping base forms equal to their dex number. - Dex behavior rules: The printed dex shows only base forms via getBaseForms, while pokedex_entries tracks each form individually and rolls counts up. - Dialog flow: SpeciesFormsDialog lists a species' forms by formLabel, handing off to DexEntryDialog for the chosen form. - Use Case: When adding Unown Q, assign id 1020116, set baseForm: false with the same dexNumber and family, update FORMS in scripts/import-sprites.ts, then run pnpm import-sprites and pnpm compact-sprites. ## Quick Start Ask the assistant to add a new alternate form for a species, and it will assign the banded id, register it with baseForm false, update the sprite import list, and run the sprite pipeline.