Note this design decision!

I'm not sure what you want to do to handle if a prerequisite task can't be found. Ideally, I think this is a much larger discussion.

I feel that a task should be self aware of it's overarching collection so that it could validate itself from within the `Task` itself. This just propagates the `KeyError` for now.

An interrum solution may be to just create a new `Error` type and raise it here. Or repurpose one.