Assistant (WIP)

Don't merge.

Since this is such a huge part of the system, I'm putting up this PR to receive JP's comments in advance.