fn search<R: StateReader>( reader: &R, at: &R::Place, walked: &mut Vec<Step>, rest: &[Step], id: &str, ) -> Option<R::Place>