From the docs, it looks like apoc.case returns a map of the results; therefore, you are receiving a map with 'Schema' and 'Count' as keys. I don't understand where the value of 'Count' is getting compute as another map with both a 'high' and 'low' value is coming from. What output do you want?
One thing you can do to have more control over the output is to remove the 'CALL apoc.path.subgraphNodes' call to outside the apoc.case, as all are the same for each case statement. Instead, your 'case' statement returns 'n' in a map, which you can extract and pass to the 'path' call. You can them format the data as you require it.
The "high" and "low" weirdness is apparently something to due with Javascript not doing 64bit numbers. I won't even pretend to care about that because actually when solved it doesn't matter.
All I had to do was add YIELD value RETURN value.Schema, value.Count after the apoc.casefunction call.
This would be a case (pun not intended) where having some actual meaningful code snippets in the documentation would be useful to understand how a function actually works. Given there's little to zero community discussion (at least findable on google) about specific functions and their usage it certainly would be nice to see some non-trivial code snippets added to documentation.
Yes, the reason ‘yield value return value.schema, value.count’ works is because ‘value’ is a map with properties ‘schema’ and ‘ count’ in your case. You can access map values with dot notation, as you figured out.
I agree that the apoc documentation can be lacking, or event confusing at times.