props property
Equality is (type, name, writable) — meaningful only within a single
container. name is a field key that's unique within one form or
infolist, not globally, so two components from different resources, or
from a form vs its infolist, can compare equal here while differing in
every other property. Do not put components from different containers
into the same Set or diff them against each other on this equality.
writable is included: a /state round-trip can flip it on a field
whose type and name are otherwise unchanged, and a rebuild that depends
on that difference needs the equality to see it. translatable is
included for the same reason writable is: it is what decides whether
this leaf renders inside a locale-chip group at all.
Implementation
@override
List<Object?> get props => [type, name, writable, translatable];