Ruby objects with public state to encourage storage as data only collections