public void nextLevel() {
				Set<T> nextLevel = new HashSet<>();
				for (T ent : allOnLevel) {
					if (descendAttributes(ent)) {
						expandAttributes(nextLevel, ent);
						expandDefaultAttribute(nextLevel, ent);
					}
					if (descendElements(ent)) {
						expandElements(nextLevel, ent);
						expandDefaultElement(nextLevel, ent);
					}
				}
				allOnLevel = nextLevel;
			}
Find (sub) path patterns that match objects implementing a given interface

<p>
Each returned path pattern accepts relative paths from an object having this schema to a
successor implementing the interface.

@param type the sub-type of {@link TraceObjectInterface} to search for
@param prefix the prefix for each relative path pattern
@param requireCanonical only return patterns matching a canonical location for the type
@return a set of patterns where such objects could be found
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/model/target/schema/TraceObjectSchema.java