Issue
A required module becomes any, unknown, or produces errors in callers after a solver change.
Cause
The module exports an ambiguous table, mutates its public shape after creation, or contains a circular require.
Fix
Define an exported public type and annotate the final module table. Build private state separately, return one stable shape, and remove circular dependencies by extracting shared definitions. Keep initialization out of type-only dependency paths.
Verify
Hover the require result in multiple callers and confirm the same public methods and property types appear.
Official Luau type solver release
#1
Original Heliotrope guidance with authoritative Roblox sources.