I've created a few simple workflows in the past, including ones that call Python scripts in the background.
However, what I can't seem to find is how to create a "cascading" workflow. Here's an example:
Call the workflow using a keyword The workflow returns a list of items The user selects one of the choices The workflow now returns a new list of items based on the user's choice in  etc…
This would go on until the choice selected by the user is an endpoint, which would then be passed on to the output action.
The script filter seems like it could do this, and I've looked