How would you go about implementing this? Am I hallucinating?

No problem.

You can rapidly prototype both options here: