Made the ForgivingDict only half-forgiving, so we accept only last-mile missing keys. But that seems cleaner in general, so OK