public void expandAttributes(Set<T> nextLevel, T ent) {
				SchemaContext ctx = ent.schema.getContext();
				for (AttributeSchema as : ent.schema.getAttributeSchemas().values()) {
					try {
						SchemaName schema = as.getSchema();
						TraceObjectSchema child = ctx.getSchema(schema);
						expandAttribute(nextLevel, ent, child, ent.path.key(as.getName()));
					}
					catch (NullPointerException npe) {
						Msg.error(this, "Null schema for " + as);
					}
				}
			}
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