V1: StorageDescriptor<
    [Key: number],
    {
        availability_votes: { bitsLen: number; bytes: Uint8Array };
        backed_in_number: number;
        backers: { bitsLen: number; bytes: Uint8Array };
        backing_group: number;
        commitments: {
            head_data: Binary;
            horizontal_messages: { data: Binary; recipient: number }[];
            hrmp_watermark: number;
            new_validation_code?: Binary;
            processed_downward_messages: number;
            upward_messages: Binary[];
        };
        core: number;
        descriptor: {
            collator: FixedSizeBinary<32>;
            erasure_root: FixedSizeBinary<32>;
            para_head: FixedSizeBinary<32>;
            para_id: number;
            persisted_validation_data_hash: FixedSizeBinary<32>;
            pov_hash: FixedSizeBinary<32>;
            relay_parent: FixedSizeBinary<32>;
            signature: FixedSizeBinary<64>;
            validation_code_hash: FixedSizeBinary<32>;
        };
        hash: FixedSizeBinary<32>;
        relay_parent_number: number;
    }[],
    true,
    never,
>

Candidates pending availability by ParaId. They form a chain starting from the latest included head of the para. Use a different prefix post-migration to v1, since the v0 PendingAvailability storage would otherwise have the exact same prefix which could cause undefined behaviour when doing the migration.