Migrate when the type is mainly a transparent data carrier with stable fields and value semantics.
A record is a strong fit when a DTO mostly exists to expose data, compare by value, and avoid mutability-heavy behavior. If the class is carrying framework annotations, custom lifecycle logic, or mutable state, keep it as a regular class. Migration should simplify the model, not force every class into record form.
Additional Notes
When should an existing DTO be migrated to a Java record?