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: {
        core_index: number;
        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>;
        reserved1: FixedSizeBinary<25>;
        reserved2: FixedSizeBinary<64>;
        session_index: number;
        validation_code_hash: FixedSizeBinary<32>;
        version: number;
    };
    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.