I suspect that if we change how the simulator package consumes witnesses and PS, we can decouple the witness file from the generated mock artifacts. Basically, I think we can make a generic witness file with default logic. And in the simulator instance (for testing or whatever case), users create the witness instance from the generated artifacts in the contract simulator file/instance
OpenZeppelin/midnight-apps#290 (comment)
This may not require refactoring simulator logic; rather, it might just require a new pattern for how witnesses are passed to the sim object
OpenZeppelin/midnight-apps#290 (comment)
This may not require refactoring simulator logic; rather, it might just require a new pattern for how witnesses are passed to the sim object