1) Complete

2) Should we maybe go with factory constructors instead? Dart doesn't have a readonly attribute so there'd be no guarantee that someone couldn't muck with the values contained in the GraphicsDevice.