# The disc's stage numbering, and the player's craft per stage
# Regenerate: python3 tools/re-capture/stage_numbering.py
# See docs/re/structures/stage-numbering-and-player-craft.md

## which stage numbers actually ship
   stage\UnitGroup_SNN.tbl  N = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
   count 28 ; gap inside the range: [17]
   stage\AIParams_SNN.tbl   N = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 24, 25, 26, 27, 28, 29]  (count 22)
   stages with NO AIParams (the tutorials): [18, 19, 20, 21, 22, 23]

## CONTROL  every per-stage file family uses the SAME numbering
   Stage\StageNN.ssb          28  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
   stage\UnitGroup_SNN.tbl    28  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
   stage\Route_SNN.tbl        28  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
   stage\AIParams_SNN.tbl     22  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 24, 25, 26, 27, 28, 29]
   stage\Formation_SNN.tbl     0  []
   stage\Message_SNN.tbl       0  []
   ssb == UnitGroup == Route : True   symmetric differences [] []

## the manifest DECLARES a stage the disc does not ship
   Stage\script.tbl SCRIPTS: 29 MISSION*.ssb fields, numbers [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
   CONTROL MISSIONn -> Stage<n>.ssb with the same n: 0/29 mismatched
   entries whose .ssb actually ships: 28/29 ; missing: ['MISSION17']

## ResourceID -- the player craft, keyed by stage
   tag 24         name <none>         rou_f002
   tag 25         name <none>         rou_f002
   tag 26         name <none>         rou_f002
   tag 27         name <none>         rou_f002
   tag 28         name <none>         rou_f004
   tag 29         name <none>         rou_f002
   tag 2354614773 name Unit_St1_6     rou_f001
   tag 3281124436 name Unit_St7_16    rou_f002
   CONTROL tag_hash(name) == tag for the named fields: 11/11

## CROSS-CHECK  the same thing from the Arsenal entries (168 = 28 stages x 6 languages)
    90 entries = 15 stages   UN_f002_TCAF_DeltaSaber_W_Player
    36 entries =  6 stages   UN_f001_TCAF_DeltaSaber_T_Player
    30 entries =  5 stages   UN_f001_TCAF_DeltaSaber_T_Player_Ttrl1
     6 entries =  1 stages   UN_f001_TCAF_DeltaSaber_T_Player_Ttrl2
     6 entries =  1 stages   UN_f004_TCAF_DeltaSaber_A_Player
   total 28 stages
