casterProgression: {
    castsPerDay: {
        hybrid: {
            high: readonly [readonly [number, 2], readonly [number, 3], readonly [number, 4], readonly [number, 4, 2], readonly [number, 4, 3], readonly [number, 4, 4, 2], readonly [number, 4, 4, 3], readonly [number, 4, 4, 4, 2], readonly [number, 4, 4, 4, 3], readonly [number, 4, 4, 4, 4, 2], readonly [number, 4, 4, 4, 4, 3], readonly [number, 4, 4, 4, 4, 4, 2], readonly [number, 4, 4, 4, 4, 4, 3], readonly [number, 4, 4, 4, 4, 4, 4, 2], readonly [number, 4, 4, 4, 4, 4, 4, 3], readonly [number, 4, 4, 4, 4, 4, 4, 4, 2], readonly [number, 4, 4, 4, 4, 4, 4, 4, 3], readonly [number, 4, 4, 4, 4, 4, 4, 4, 4, 2], readonly [number, 4, 4, 4, 4, 4, 4, 4, 4, 3], readonly [number, 4, 4, 4, 4, 4, 4, 4, 4, 4]];
        };
        prepared: {
            high: readonly [readonly [number, 1], readonly [number, 2], readonly [number, 2, 1], readonly [number, 3, 2], readonly [number, 3, 2, 1], readonly [number, 3, 3, 2], readonly [number, 4, 3, 2, 1], readonly [number, 4, 3, 3, 2], readonly [number, 4, 4, 3, 2, 1], readonly [number, 4, 4, 3, 3, 2], readonly [number, 4, 4, 4, 3, 2, 1], readonly [number, 4, 4, 4, 3, 3, 2], readonly [number, 4, 4, 4, 4, 3, 2, 1], readonly [number, 4, 4, 4, 4, 3, 3, 2], readonly [number, 4, 4, 4, 4, 4, 3, 2, 1], readonly [number, 4, 4, 4, 4, 4, 3, 3, 2], readonly [number, 4, 4, 4, 4, 4, 4, 3, 2, 1], readonly [number, 4, 4, 4, 4, 4, 4, 3, 3, 2], readonly [number, 4, 4, 4, 4, 4, 4, 4, 3, 3], readonly [number, 4, 4, 4, 4, 4, 4, 4, 4, 4]];
            low: readonly [readonly [number], readonly [number], readonly [number], readonly [number, 0], readonly [number, 1], readonly [number, 1], readonly [number, 1, 0], readonly [number, 1, 1], readonly [number, 2, 1], readonly [number, 2, 1, 0], readonly [number, 2, 1, 1], readonly [number, 2, 2, 1], readonly [number, 3, 2, 1, 0], readonly [number, 3, 2, 1, 1], readonly [number, 3, 2, 2, 1], readonly [number, 3, 3, 2, 1], readonly [number, 4, 3, 2, 1], readonly [number, 4, 3, 2, 2], readonly [number, 4, 3, 3, 2], readonly [number, 4, 4, 3, 3]];
            med: readonly [readonly [number, 1], readonly [number, 2], readonly [number, 3], readonly [number, 3, 1], readonly [number, 4, 2], readonly [number, 4, 3], readonly [number, 4, 3, 1], readonly [number, 4, 4, 2], readonly [number, 5, 4, 3], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 4, 2], readonly [number, 5, 5, 4, 3], readonly [number, 5, 5, 4, 3, 1], readonly [number, 5, 5, 4, 4, 2], readonly [number, 5, 5, 5, 4, 3], readonly [number, 5, 5, 5, 4, 3, 1], readonly [number, 5, 5, 5, 4, 4, 2], readonly [number, 5, 5, 5, 5, 4, 3], readonly [number, 5, 5, 5, 5, 5, 4], readonly [number, 5, 5, 5, 5, 5, 5]];
        };
        prestige: {
            low: readonly [readonly [number, 1], readonly [number, 2], readonly [number, 3], readonly [number, 3, 1], readonly [number, 4, 2], readonly [number, 4, 3], readonly [number, 4, 3, 1], readonly [number, 4, 4, 2], readonly [number, 5, 4, 3], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 3, 1]];
        };
        spontaneous: {
            high: readonly [readonly [number, 3], readonly [number, 4], readonly [number, 5], readonly [number, 6, 3], readonly [number, 6, 4], readonly [number, 6, 5, 3], readonly [number, 6, 6, 4], readonly [number, 6, 6, 5, 3], readonly [number, 6, 6, 6, 4], readonly [number, 6, 6, 6, 5, 3], readonly [number, 6, 6, 6, 6, 4], readonly [number, 6, 6, 6, 6, 5, 3], readonly [number, 6, 6, 6, 6, 6, 4], readonly [number, 6, 6, 6, 6, 6, 5, 3], readonly [number, 6, 6, 6, 6, 6, 6, 4], readonly [number, 6, 6, 6, 6, 6, 6, 5, 3], readonly [number, 6, 6, 6, 6, 6, 6, 6, 4], readonly [number, 6, 6, 6, 6, 6, 6, 6, 5, 3], readonly [number, 6, 6, 6, 6, 6, 6, 6, 6, 4], readonly [number, 6, 6, 6, 6, 6, 6, 6, 6, 6]];
            low: readonly [readonly [number], readonly [number], readonly [number], readonly [number, 1], readonly [number, 1], readonly [number, 1], readonly [number, 1, 1], readonly [number, 1, 1], readonly [number, 2, 1], readonly [number, 2, 1, 1], readonly [number, 2, 1, 1], readonly [number, 2, 2, 1], readonly [number, 3, 2, 1, 1], readonly [number, 3, 2, 1, 1], readonly [number, 3, 2, 2, 1], readonly [number, 3, 3, 2, 1], readonly [number, 4, 3, 2, 1], readonly [number, 4, 3, 2, 2], readonly [number, 4, 3, 3, 2], readonly [number, 4, 4, 3, 2]];
            med: readonly [readonly [number, 1], readonly [number, 2], readonly [number, 3], readonly [number, 3, 1], readonly [number, 4, 2], readonly [number, 4, 3], readonly [number, 4, 3, 1], readonly [number, 4, 4, 2], readonly [number, 5, 4, 3], readonly [number, 5, 4, 3, 1], readonly [number, 5, 4, 4, 2], readonly [number, 5, 5, 4, 3], readonly [number, 5, 5, 4, 3, 1], readonly [number, 5, 5, 4, 4, 2], readonly [number, 5, 5, 5, 4, 3], readonly [number, 5, 5, 5, 4, 3, 1], readonly [number, 5, 5, 5, 4, 4, 2], readonly [number, 5, 5, 5, 5, 4, 3], readonly [number, 5, 5, 5, 5, 5, 4], readonly [number, 5, 5, 5, 5, 5, 5]];
        };
    };
    spellsPreparedPerDay: {
        hybrid: {
            high: readonly [readonly [4, 2], readonly [5, 2], readonly [5, 3], readonly [6, 3, 1], readonly [6, 4, 2], readonly [7, 4, 2, 1], readonly [7, 5, 3, 2], readonly [8, 5, 3, 2, 1], readonly [8, 5, 4, 3, 2], readonly [9, 5, 4, 3, 2, 1], readonly [9, 5, 5, 4, 3, 2], readonly [9, 5, 5, 4, 3, 2, 1], readonly [9, 5, 5, 4, 4, 3, 2], readonly [9, 5, 5, 4, 4, 3, 2, 1], readonly [9, 5, 5, 4, 4, 4, 3, 2], readonly [9, 5, 5, 4, 4, 4, 3, 2, 1], readonly [9, 5, 5, 4, 4, 4, 3, 3, 2], readonly [9, 5, 5, 4, 4, 4, 3, 3, 2, 1], readonly [9, 5, 5, 4, 4, 4, 3, 3, 3, 2], readonly [9, 5, 5, 4, 4, 4, 3, 3, 3, 3]];
        };
        prepared: {
            high: readonly [readonly [3, 1], readonly [4, 2], readonly [4, 2, 1], readonly [4, 3, 2], readonly [4, 3, 2, 1], readonly [4, 3, 3, 2], readonly [4, 4, 3, 2, 1], readonly [4, 4, 3, 3, 2], readonly [4, 4, 4, 3, 2, 1], readonly [4, 4, 4, 3, 3, 2], readonly [4, 4, 4, 4, 3, 2, 1], readonly [4, 4, 4, 4, 3, 3, 2], readonly [4, 4, 4, 4, 4, 3, 2, 1], readonly [4, 4, 4, 4, 4, 3, 3, 2], readonly [4, 4, 4, 4, 4, 4, 3, 2, 1], readonly [4, 4, 4, 4, 4, 4, 3, 3, 2], readonly [4, 4, 4, 4, 4, 4, 4, 3, 2, 1], readonly [4, 4, 4, 4, 4, 4, 4, 3, 3, 2], readonly [4, 4, 4, 4, 4, 4, 4, 4, 3, 3], readonly [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]];
            low: readonly [readonly [null], readonly [null], readonly [null], readonly [null, 0], readonly [null, 1], readonly [null, 1], readonly [null, 1, 0], readonly [null, 1, 1], readonly [null, 2, 1], readonly [null, 2, 1, 0], readonly [null, 2, 1, 1], readonly [null, 2, 2, 1], readonly [null, 3, 2, 1, 0], readonly [null, 3, 2, 1, 1], readonly [null, 3, 2, 2, 1], readonly [null, 3, 3, 2, 1], readonly [null, 4, 3, 2, 1], readonly [null, 4, 3, 2, 2], readonly [null, 4, 3, 3, 2], readonly [null, 4, 4, 3, 3]];
            med: readonly [readonly [3, 1], readonly [4, 2], readonly [4, 3], readonly [4, 3, 1], readonly [4, 4, 2], readonly [5, 4, 3], readonly [5, 4, 3, 1], readonly [5, 4, 4, 2], readonly [5, 5, 4, 3], readonly [5, 5, 4, 3, 1], readonly [5, 5, 4, 4, 2], readonly [5, 5, 5, 4, 3], readonly [5, 5, 5, 4, 3, 1], readonly [5, 5, 5, 4, 4, 2], readonly [5, 5, 5, 5, 4, 3], readonly [5, 5, 5, 5, 4, 3, 1], readonly [5, 5, 5, 5, 4, 4, 2], readonly [5, 5, 5, 5, 5, 4, 3], readonly [5, 5, 5, 5, 5, 5, 4], readonly [5, 5, 5, 5, 5, 5, 5]];
        };
        prestige: {
            low: readonly [readonly [null, 2], readonly [null, 3], readonly [null, 4], readonly [null, 4, 2], readonly [null, 4, 3], readonly [null, 4, 4], readonly [null, 5, 4, 2], readonly [null, 5, 4, 3], readonly [null, 5, 4, 4], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2], readonly [null, 5, 5, 4, 2]];
        };
        spontaneous: {
            high: readonly [readonly [4, 2], readonly [5, 2], readonly [5, 3], readonly [6, 3, 1], readonly [6, 4, 2], readonly [7, 4, 2, 1], readonly [7, 5, 3, 2], readonly [8, 5, 3, 2, 1], readonly [8, 5, 4, 3, 2], readonly [9, 5, 4, 3, 2, 1], readonly [9, 5, 5, 4, 3, 2], readonly [9, 5, 5, 4, 3, 2, 1], readonly [9, 5, 5, 4, 4, 3, 2], readonly [9, 5, 5, 4, 4, 3, 2, 1], readonly [9, 5, 5, 4, 4, 4, 3, 2], readonly [9, 5, 5, 4, 4, 4, 3, 2, 1], readonly [9, 5, 5, 4, 4, 4, 3, 3, 2], readonly [9, 5, 5, 4, 4, 4, 3, 3, 2, 1], readonly [9, 5, 5, 4, 4, 4, 3, 3, 3, 2], readonly [9, 5, 5, 4, 4, 4, 3, 3, 3, 3]];
            low: readonly [readonly [2], readonly [3], readonly [4], readonly [4, 2], readonly [5, 3], readonly [5, 4], readonly [6, 4, 2], readonly [6, 4, 3], readonly [6, 5, 4], readonly [6, 5, 4, 2], readonly [6, 5, 4, 3], readonly [6, 6, 5, 4], readonly [6, 6, 5, 4, 2], readonly [6, 6, 5, 4, 3], readonly [6, 6, 6, 5, 4], readonly [6, 6, 6, 5, 4], readonly [6, 6, 6, 5, 4], readonly [6, 6, 6, 6, 5], readonly [6, 6, 6, 6, 5], readonly [6, 6, 6, 6, 5]];
            med: readonly [readonly [4, 2], readonly [5, 3], readonly [6, 4], readonly [6, 4, 2], readonly [6, 4, 3], readonly [6, 4, 4], readonly [6, 5, 4, 2], readonly [6, 5, 4, 3], readonly [6, 5, 4, 4], readonly [6, 5, 5, 4, 2], readonly [6, 6, 5, 4, 3], readonly [6, 6, 5, 4, 4], readonly [6, 6, 5, 5, 4, 2], readonly [6, 6, 6, 5, 4, 3], readonly [6, 6, 6, 5, 4, 4], readonly [6, 6, 6, 5, 5, 4, 2], readonly [6, 6, 6, 6, 5, 4, 3], readonly [6, 6, 6, 6, 5, 4, 4], readonly [6, 6, 6, 6, 5, 5, 4], readonly [6, 6, 6, 6, 6, 5, 5]];
        };
    };
} = ...

This Object determines spells gained and cast per level