You let people register interest by Monday (potentially weeks in advance). You draw N lots on Tuesday. People get an email, they have the option to reserve a space and 24 hours to exercise it. M people do so. On Wednesday you draw N - M lots. You keep going until either you've assigned all the spaces or you've run out of time.
People will still exercise a greedy strategy, and they might cancel their interest ahead of time, but if the lottery hasn't started that's a free operation. If they click the link and indicate they aren't interested any longer, we can offer the spot to someone else immediately. If they never click the link, then it gets bumped to Wednesday. Hopefully that's tolerable.
How far you may register in advance and how long you have to exercise your option are variables that you can tune. If you're getting overwhelmed and failing to assign spaces, you reduce one or the other.
Last minute cancellations or spots that people repeatedly failed to click the link for, need to be assigned ASAP to avoid a dead weight loss; for these, you can fail back to the old system. Maybe you email everyone who hadn't gotten a space, and the first to click the link wins. If that were the edge case instead of the norm, it probably wouldn't be a big deal to give it to the bot folk. At that point, they're playing an important role in making this market efficient, the sort of HFTs of the ski resort.
Alternatively, you can do just one round and then go to first-to-click. That gives the people who aren't botting room to breathe, at least.
(After typing this all out though, I do see that this is conceptually simple but complex to implement.)
No, when you get the "you won a spot" email, you have to click to confirm. Probably it should be set up to give you 12-24 hours to do so, and if you don't, it draws a new person and sends them an email.
I was surprised to read your initial post about it being hard to get spots. I went four times this past season... though I think maybe only once on a weekend (in January), and it was easy to get a parking reservation. Maybe that was early enough in the season that people hadn't written many bots yet. Bummed that it's going to be a pain next season.
Now here's where it gets interesting: this means a rational no-bot human ought to ignore the whole system until 9am day-of, at which point the greedy "just in case" reservations have all been canceled, so all reservations are real people, and the ridiculousness of the system has led enough people to find alternative transportation that plenty of spots are available for easy taking, right? If no-show penalties are enforced properly.
I was out there in early March and this consumed me for a few weeks leading up to it, but it was fun.
How would a lottery work for this situation? Everyone thinking of maybe skiing signs up on Monday, then on Tuesday an email is sent to N people saying "you won the parking lottery," then someone canceling last-minute (to avoid the no-show penalty) causes another "you won" email to go out randomly to the wait list? What if the person on the wait list doesn't see that they've won at the last minute, do they get a penalty for not having proactively removed themselves from the wait list upon deciding to ignore email the rest of the week? I guess this could work, but it's pretty dicey...