How to mint reserved tokenIDs for specific addresses with ERC721A

(ERC721A doc:
ERC721A repo:
I have a collection where my whitelist with around 200 users will hand pick the tokens they want before the contract is deployed
They will pay zero fee for the minting, only the gas price

Since ERC721A does not implement the mint function with a tokenID (amount instead) there is no straightforward way for me to deliver these specific tokens to my whitelist

Could someone suggest a safe approach to do so?

I will have knowledge of both the tokenIDs and their corresponding addresses, I just need to find a way to call some other custom mint/transfer function when they connect to my minting dapp

Initially I was thinking to create the collection with a max supply that does not include the 200 for the whitelist, and leave them as the last tokens on list, for example, say the entire collection has 1000 tokens, I'd put the max supply as 800, and deal with those 200 in a different way.

The easiest obvious way that I thought was to call a transfer function since I'll have their addresses, but paying gas myself for minting the 200 and then also for the transactions is a no go.

Looking at the ERC721A docs I see that the approve function could be used so that they get approved for their specific tokens and then pay for the transfer to themselves, but I would be the one to issue all the 200 approve calls and I bet this would have similar or same gas fee. I would do so only if the fees are zero or irrelevant, but I don't think I can count with that.
Also, I'm not sure if approve could work since I'd have to approve for a token that has never been minted before.

you can use approveForAll functon

Hey @asato thanks for the reply
I was thinking about doing that, make myself an operator and be able to transfer those to who they belong.
First think I cannot figure out is, can I make a transferFrom even for tokens that are not minted? This is the main point that I want to achieve, either transfer or set specific owners without paying for the gas fees myself, or let those specific users mint only the tokens that belong to them.
I still cannot figure out a good way to do that with ERC721A, maybe this specific contract won't work for my case after all

Hi, I am senior solidity engineer. I am looking for a new job.
If you have any jobs, please ping me on telegram.

Thanks for reaching out, I'll let you know if something comes up