Have a look at MakePass[0] - which sounds exactly like you describe. It allows you to design a pass as per spec.
[0] https://pvieito.com