__typename /foo/bar # possible, usual use case require="__a//b" __typename /foo/bar # possible and happens often for __a/$id in loops __typename /foo/bar/ # trailing slash will be stripped, can be documented __typename /foo//bar//baz # // will be converted to / implicitly through fs; error prone; disallow require="__a//b//c" __typename # // will be converted to / implicitly through fs; error prone; disallow Solution: 1) allow require __a//b: type __a, object id /b => strip first slash of object id, as we do in non-dep-mode 2) allow _one_ trailing /: __type /foo/bar/ and require="__foo/abc/" => strip one leading slash of object id 3) disallow // within object id 4) disallow starting or ending / after 1) and 2)