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 | undefined;
        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>

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.