After discussing with @alexgibson, I don't think `width` and `height` should be required here. There may be instances where the size should be controlled by CSS alone. Width and height should be moved in with the `optional_attributes`, leaving it up to the template developer to decide how they want to control the dimensions.