Now I see, you are trying to pass the init args from another language, and that’s why you cannot use the nns-init library.
Wait, you cannot initialize that freaking canister with Candid but, only protobuf?
After a closer look, yes. Apologies for what I said earlier. My impression came from the fact that we use candid::export_service! to generate governance.did from the canister code and in most cases it was accurate in terms of the consistency between the interface and what the canister actually expects. It turns out this is the biggest lie the governance.did has been telling - this is prost_message::decode which is protobuf wire format, and the ic-nns-init library I mentioned earlier is also encoding as protobuf here
Would you be able to use governance.proto to generate ts?
I was hoping for some guidance on what parameters are required and what are their expected values.
Your example above seems to provide enough for at least get it running.
There seems to be a relatively easy path towards sanity here, since those canister init methods (Governance and GTC) will not be used on mainnet anymore (and no post_upgrade arguments), we can change them without affecting mainnet, for better initialization for testing and development. On the other hand, you seem to be the first one running into this. Could you help provide some explanation on why you can’t use the dfx extension? This will help a lot in justifying the work, and help us prioritize. Thanks!