This is the reason to list a bot on a directory at all: a reader votes, your bot
gives them something, and both of you come back tomorrow. Two endpoints support
it and they answer different questions.
The cooldown
A vote lasts 12 hours. /check answers from that window directly, so you
never have to compute it:
nextVoteAt is there so your bot can say when to come back rather than “you
have already voted”, which is the difference between a useful message and a
dead end.
In a command
Cache the answer for a minute or two per user. A busy bot calls this on every
invocation, and the state cannot change more than twice a day — the 600/min
limit is headroom, not an invitation.
Catching up after downtime
The log returns ids and timestamps only. Names and avatars are deliberately not
in it: you already share a server with these people, and a vote lookup that
returned profiles would be a scraping endpoint with extra steps.
What not to build
Do not offer anything that makes voting feel mandatory to use your bot at
all, and never reward a user for voting from more than one account. The first
makes your listing worse to read; the second is what gets a bot delisted.