props property
Identity only: id and version are exactly the two things that do not
change when a panel's contents do, so two documents whose resources
differ entirely still compare equal. Never write
if (fresh == cached) return; after refetching /schema — that discards
every real update.
Implementation
@override
List<Object?> get props => [id, version];