SignedSubmissionsMap: StorageDescriptor<
    [Key: number],
    {
        call_fee: bigint;
        deposit: bigint;
        raw_solution: {
            round: number;
            score: {
                minimal_stake: bigint;
                sum_stake: bigint;
                sum_stake_squared: bigint;
            };
            solution: {
                votes1: [number, number][];
                votes10: [number, FixedSizeArray<9, [number, number]>, number][];
                votes11: [number, FixedSizeArray<10, [number, number]>, number][];
                votes12: [number, FixedSizeArray<11, [number, number]>, number][];
                votes13: [number, FixedSizeArray<12, [number, number]>, number][];
                votes14: [number, FixedSizeArray<13, [number, number]>, number][];
                votes15: [number, FixedSizeArray<14, [number, number]>, number][];
                votes16: [number, FixedSizeArray<15, [number, number]>, number][];
                votes2: [number, [number, number], number][];
                votes3: [number, FixedSizeArray<2, [number, number]>, number][];
                votes4: [number, FixedSizeArray<3, [number, number]>, number][];
                votes5: [number, FixedSizeArray<4, [number, number]>, number][];
                votes6: [number, FixedSizeArray<5, [number, number]>, number][];
                votes7: [number, FixedSizeArray<6, [number, number]>, number][];
                votes8: [number, FixedSizeArray<7, [number, number]>, number][];
                votes9: [number, FixedSizeArray<8, [number, number]>, number][];
            };
        };
        who: SS58String;
    },
    true,
    never,
>

Unchecked, signed solutions.

Together with SubmissionIndices, this stores a bounded set of SignedSubmissions while allowing us to keep only a single one in memory at a time.

Twox note: the key of the map is an auto-incrementing index which users cannot inspect or affect; we shouldn't need a cryptographically secure hasher.