0cf019379a
The layering only holds if something checks it, so these tests read the real import statements under lib/ and assert the direction: domain imports no Flutter and nothing else in the package, data never reaches into ui and may import flutter/services alone, and ui never names a concrete transport. A final test asserts the set of directories under lib/ is exactly the three layers, so a new one cannot appear and silently escape every rule above. Each violation reports the offending file and import with the reason, since a guard that only says "expected empty" costs more than it saves. Verified by introducing a UI-to-data import and a Flutter import in domain and confirming both fail. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>