It seems that, at cycle
n, the context stores one selected snapshot (among 16) for each cycle between
n+5, and 16 snapshots for cycle
n+6, and some number between 0 and 16 for cycle
n+7 (depending where we are in cycle n). Is this right?
If yes, then couldn't one already select (at
n) the snapshot for cycle
n+6, using the seed for cycle
n+5 (because the one for
n+6 is not yet available)? In this way the context could store 15 snapshots less. Or does there need to be a certain correlation between the seed used for selecting the snapshot and the cycle for which the snapshot is selected? (Same question could be asked for baking/endorsement rights.) I imagine it is simply sufficient to not reuse a seed for the same purpose.
n+6, what would you use for
n+7? Looks like you are going to always use the same seed...
n+5to select the snapshot of
n+6(and the baking/endorsments rights of
n+5); then the seed of
n+6to select the snaphsot of
n+7and so on. The same seed would not be used twice for the same purpose (like selecting a snapshot).