refactor(rating): use optional binding for `readonly`

Closes #1641