imho capturing `taskName: String` as public API feels wrong. At this level we should be capturing as typed info as possible like `ScopedKey[_]` and let each imple worry about about turning them into `String`.