default KeyPath searchForSuitable(Class<? extends TraceObjectInterface> type, KeyPath path) {
		List<TraceObjectSchema> schemas = getSuccessorSchemas(path);
		for (; path != null; path = path.parent()) {
			TraceObjectSchema schema = schemas.get(path.size());
			if (schema.getInterfaces().contains(type)) {
				return path;
			}
			KeyPath inAgg = Private.searchForSuitableInAggregate(schema, type);
			if (inAgg != null) {
				return path.extend(inAgg);
			}
		}
		return null;
	}
Search for a suitable object with this schema at the given path

@param type the type of object sought
@param path the path of a seed object
@return the expected path of the suitable object, or null
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/model/target/schema/TraceObjectSchema.java