Best practice for registration endpoints

I’m securing a Node.JS / NestJS using Passport and an OIDC Strategy. I’m wondering how best to provide a registration endpoint whilst still keeping within the libraries.

I came up with a thought that I could create two clients within my realm and have one override the default flow to use the registration flow. This seems to work, but I’m not sure if there are any implications in this.

The other nuance to this is that I’m collecting some information (geographical location and a platform role) earlier on in the sign up process - as a means of limiting sign ups from particular locations. I want to save this in a ‘registration session’ then recombine with a platform profile only once the registration / email validation has completed.

Any thoughts on this concept?