In order to do #13, we need to be able to test on Linux. Of course, the current implementation makes heavy use of `NSDictionary` / `NSValue`, so a Linux build isn't going to fly until that's sorted out.