@Override
	default TraceProgramView getProgram() {
		TraceThread thread = getThread();
		TraceProgramView view = getTrace().getProgramView();
		if (thread == null) {
			return view;
		}
		// Non-null: How could a unit be here otherwise?
		return Objects.requireNonNull(view.getViewRegisters(thread, false));
	}
A base interface for implementations of {@link TraceCodeUnit}

<p>
This behaves somewhat like a mixin, allowing it to be used on code units as well as data
components, e.g., fields of a struct data unit.
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/listing/DBTraceCodeUnitAdapter.java