I got a step further. The more complex example looks like this (Playground):
type DeepFunctions = { [key: s