@Test
	public void testAttributeAliasing() {
		TraceObject regionText;
		try (Transaction tx = b.startTransaction()) {
			TraceObjectValue rootVal =
				manager.createRootObject(ctx.getSchema(new SchemaName("Session")));
			root = rootVal.getChild();

			regionText =
				manager.createObject(KeyPath.parse("Targets[0].Memory[bin:.text]"));
			regionText.insert(Lifespan.nowOn(0), ConflictResolution.DENY);
			regionText.setAttribute(Lifespan.nowOn(0), "_range", b.range(0x00400000, 0x00401000));
			regionText.setAttribute(Lifespan.nowOn(0), "Range", b.range(0x00400000, 0x00402000));
		}

		assertEquals(ctx.getSchema(new SchemaName("Region")), regionText.getSchema());
		assertEquals(Set.of(
			regionText.getAttribute(0, "Range")),
			Set.copyOf(regionText.getAttributes(Lifespan.ALL)));
		assertEquals(b.range(0x00400000, 0x00402000),
			regionText.getAttribute(0, "_range").getValue());
		assertEquals(b.range(0x00400000, 0x00402000),
			regionText.getAttribute(0, "Range").getValue());
		assertEquals("Range", regionText.getAttribute(0, "_range").getEntryKey());
	}
Fails because you cannot create a second root object.
Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/target/DBTraceObjectManagerTest.java