[Boombox] initial commit for PlayerState implementation
[Boombox] overloaded Boombox.play to accept either a provider or an id