In my case I provide an actual conid because it is a unique identifier. There is no chance of mixing up contracts, or having any ambiguity. The conid which I use for each instrument is stored in a file. I also store the "next conid" when a contract is getting close to expiry and I want the position to (gradually) roll over. For example: if an instrument has a quarterly rollover I specify to use the HMUZ contracts. If the currently used contract is the H one, it will search for the conid that associates with the M expiry date and stores that to become the "next conid". I may have to review the software that selects that next conid to ensure that it does not select a weekly contract which might have lower trading volume than the monthly contract.
I have similar implementation. Now I have noticed that quarterly micro DAX contract has new name (i.e. FDXS 20230915 M instead of FDXS SEP 23). At first it was presented by EUREX that monthly contract names stay the same, and only weekly contracts would get W1, W2, W3, W4 at the end.
