Re-reading the doc, the restriction is that all fields of a value type must be final, because value objects do not have identity.