As a CorDapp developer, I want to be able to start my own custom flows (with custom types) from the shell to perform demos and systems tests.
Currently that is not possible as CorDapp developers cannot extend the Jackson object mapper to add deserialisers for their own custom types. See https://stackoverflow.com/questions/56539241/unable-to-updatesettlementmethod-with-accounttopay-accountid-of-string-type/56539491#56539491 for an example of this limitation in the wild.
It is possible to use Jackson annotations but it's very tricky and there are limitations, for example, polymorphism doesn't work as the super types (which often exist in other CorDapps) need annotating too.
The workaround is to create a flow which takes only String parameters and constructs the types which could not be constructed directly via flow invocation from the shell. This sometimes gets messy because a range of possible objects often need creating from one string parameter, e.g. FiatCurrency or DigitalCurrency.