sg2 0.23.0

Definition and types for the SG2 interface
Documentation
# SG2 Spec: Stargaze Minter Factory Contracts

Common types needed for minter factories. New minter factories should extend these types to add their custom properties.

Every minter requires a factory that stores the minter's governance paramaters. A minter factory creates minters based on these paramaters.

For example, the vending minter factory needs a `shuffle_fee`. This is added as a custom extension to `MinterParams` and `UpdateParamsMsg`.

```rs
pub struct VendingUpdateParamsExtension {
    pub shuffle_fee: Option<Coin>,
}
pub type VendingUpdateParamsMsg = UpdateMinterParamsMsg<VendingUpdateParamsExtension>;

pub struct ParamsExtension {
    pub shuffle_fee: Coin,
}
pub type VendingMinterParams = MinterParams<ParamsExtension>;
```