static KeyPath searchForSuitableContainerInAggregate(TraceObjectSchema seed,
				Class<? extends TraceObjectInterface> type) {
			return searchForInAggregate(seed, ent -> {
				if (!ent.schema.isCanonicalContainer()) {
					return false;
				}
				TraceObjectSchema deSchema =
					ent.schema.getContext().getSchema(ent.schema.getDefaultElementSchema());
				return deSchema.getInterfaces().contains(type);
			});
		}
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