  
  Previously we had these two base classes:
  
  * `Field` as the base class for read-only fields. A default implementation was included for serializing data.
  * `WriteableField` as the base class for read-write fields.
  
  We now use the following:
  
  * `Field` is the base class for all fields. It does not include any default implementation for either serializing or deserializing data.
  * `ReadOnlyField` is a concrete implementation for read-only fields that simply returns the attribute value without modification.
 
</s> remove We now have a better seperation, with seperate `required` and `allow_none` arguments.
 </s> add We now have a better separation, with separate `required` and `allow_none` arguments. </s> remove Previously the meaning of the `required=False` keyword argument was underspecified. In practice it's use meant that a field could either be not included in the input, or it could be included, but be `None`.
 </s> add Previously the meaning of the `required=False` keyword argument was underspecified. In practice its use meant that a field could either be not included in the input, or it could be included, but be `None`. </s> remove * `.data` - Returns the outgoing primative representation.
 </s> add * `.data` - Returns the outgoing primitive representation. </s> remove * Optimisations for serialializing primary keys.
 </s> add * Optimisations for serializing primary keys. </s> remove Removing the shortcut takes away an unneccessary layer of abstraction, and makes your codebase more explicit without any significant extra complexity. It also results in better consistency, as there's now only one way to set the serializer class and queryset attributes for the view, instead of two.
 </s> add Removing the shortcut takes away an unnecessary layer of abstraction, and makes your codebase more explicit without any significant extra complexity. It also results in better consistency, as there's now only one way to set the serializer class and queryset attributes for the view, instead of two.
* `WritableField` as the base class for read-write fields.
  
  Previously we had these two base classes:
  
  * `Field` as the base class for read-only fields. A default implementation was included for serializing data.
* `WritableField` as the base class for read-write fields.
  
  We now use the following:
  
  * `Field` is the base class for all fields. It does not include any default implementation for either serializing or deserializing data.
  * `ReadOnlyField` is a concrete implementation for read-only fields that simply returns the attribute value without modification.
keep keep keep keep replace keep keep keep keep keep
 Minor: fix spelling and grammar, mostly in 3.0 announcement 
docs/topics/3.0-announcement.md