I contrived a ridiculous example of how to gather arguments for an interactive function in emacs without using the interactive codes and strings. But the important thing to know is that an argument list will bind to the list that interactive provides, no matter how it's generated.
https://octodon.social/media/sOQRJKoUHkZS3otYdsM