digraph  {
"1. on ship" [ann="[]", tags="set()"];
"2. cliff" [ann="[]", tags="set()"];
"_u.2" [ann="[]", tags="{'unknown'}"];
"_u.3" [ann="[]", tags="{'unknown'}"];
"3. cave entrance" [ann="[]", tags="set()"];
"4. cave" [ann="[]", tags="set()"];
"_u.5" [ann="[]", tags="{'unknown'}"];
"_u.6" [ann="[]", tags="{'unknown'}"];
"_u.7" [ann="[]", tags="{'unknown'}"];
"5. cave ledge" [ann="[]", tags="set()"];
"_u.9" [ann="[]", tags="{'unknown'}"];
"_u.10" [ann="[]", tags="{'unknown'}"];
"1. on ship" -> "2. cliff"  [ann="[]", effects="{'gain': [], 'lose': [], 'alters': [], 'tags': [], 'next': None, 'cycle': False}", key=right, reciprocal="to ship", requires="ReqNothing()", tags="set()"];
"1. on ship" -> "3. cave entrance"  [ann="[]", effects="{'gain': [], 'lose': [], 'alters': [], 'tags': [], 'next': None, 'cycle': False}", key=left, reciprocal="to ship", requires="ReqNothing()", tags="set()"];
"2. cliff" -> "1. on ship"  [ann="[]", effects="{'gain': [], 'lose': [], 'alters': [], 'tags': [], 'next': None, 'cycle': False}", key="to ship", reciprocal=right, requires="ReqNothing()", tags="set()"];
"2. cliff" -> "_u.2"  [ann="[]", key="up cliff", reciprocal=return, requires="ReqPower('high_jump')", tags="set()"];
"2. cliff" -> "_u.3"  [ann="[]", key="through tunnel", reciprocal=return, requires="ReqPower('block_breaker')", tags="set()"];
"_u.2" -> "2. cliff"  [ann="[]", key=return, reciprocal="up cliff", tags="set()"];
"_u.3" -> "2. cliff"  [ann="[]", key=return, reciprocal="through tunnel", tags="set()"];
"3. cave entrance" -> "1. on ship"  [ann="[]", effects="{'gain': [], 'lose': [], 'alters': [], 'tags': [], 'next': None, 'cycle': False}", key="to ship", reciprocal=left, requires="ReqNothing()", tags="set()"];
"3. cave entrance" -> "4. cave"  [ann="[]", effects="{'gain': [], 'lose': [], 'alters': [], 'tags': [], 'next': None, 'cycle': False}", key="through door", reciprocal="door to outside", requires="ReqNothing()", tags="set()"];
"4. cave" -> "3. cave entrance"  [ann="[]", effects="{'gain': [], 'lose': [], 'alters': [], 'tags': [], 'next': None, 'cycle': False}", key="door to outside", reciprocal="through door", requires="ReqNothing()", tags="set()"];
"4. cave" -> "_u.5"  [ann="[]", key="down blocked", reciprocal=return, requires="ReqAll([ReqPower('crawl'), ReqPower('block_breaker')])", tags="set()"];
"4. cave" -> "_u.6"  [ann="[]", key="down short", reciprocal=return, requires="ReqPower('crawl')", tags="set()"];
"4. cave" -> "_u.7"  [ann="[]", key=left, reciprocal=return, requires="ReqPower('block_breaker')", tags="set()"];
"4. cave" -> "5. cave ledge"  [ann="[]", effects="{'gain': [], 'lose': [], 'alters': [], 'tags': [], 'next': None, 'cycle': False}", key="down pit", reciprocal=up, requires="ReqNothing()", tags="set()"];
"_u.5" -> "4. cave"  [ann="[]", key=return, reciprocal="down blocked", tags="set()"];
"_u.6" -> "4. cave"  [ann="[]", key=return, reciprocal="down short", tags="set()"];
"_u.7" -> "4. cave"  [ann="[]", key=return, reciprocal=left, tags="set()"];
"5. cave ledge" -> "4. cave"  [ann="[]", effects="{'gain': [], 'lose': [], 'alters': [], 'tags': [], 'next': None, 'cycle': False}", key=up, reciprocal="down pit", requires="ReqNothing()", tags="set()"];
"5. cave ledge" -> "_u.9"  [ann="[]", key=down, reciprocal=return, tags="set()"];
"5. cave ledge" -> "_u.10"  [ann="[]", key="recessed door", reciprocal=return, requires="ReqPower('crawl')", tags="set()"];
"_u.9" -> "5. cave ledge"  [ann="[]", key=return, reciprocal=down, tags="set()"];
"_u.10" -> "5. cave ledge"  [ann="[]", key=return, reciprocal="recessed door", tags="set()"];
}
