Estimate: 12m · Depends on: 2.1.1, 2.1.2, 2.1.3
Consolidated test coverage for the type layer: the canParent matrix, service-layer rejection of illegal parents (+ the DB-constraint backstop), and the key-assignment concurrency guarantee. Most assertions live with their Subtasks; this Subtask owns the cross-cutting integration test that exercises create → validate → key end to end against real Postgres, and is the Story's CI gate.
tests/helpers/db.ts truncate helper