anchor.diff:  
   The rules are:
   
  -* Allowed characters are the ones in the plain ASCII set except the following ones: control characters, whitespace, `&`, `?`, `/` and `#`.
  +* Allowed characters are the ones in the plain ASCII set, except the following ones:
  +  control characters, whitespace, `&`, `?`, `/` and `#`.
   * Maximum field length is 256 characters.
   * Minimum field length is 1 character.
   
  -In addition to the above rules, given NGSIv2 server implementations could add additional syntactical restrictions in those
  -or other fields, e.g. to avoid some cross script injection attacks.
  -
  -In the case a client attemps to use a field not valid from a syntax point of view, it shall get a "Bad Request" error
  -explaining the cause.
  -
  -## Atrribute names restrictions
  +In addition to the above rules, given NGSIv2 server implementations could add additional syntactical
  +restrictions in those or other fields, e.g., to avoid cross script injection attacks.
  +
  +In case a client attempts to use a field that is invalid from a syntax point of view, the client gets
  +a "Bad Request" error response, explaining the cause.
  +
  +## Attribute names restrictions
   
   The following strings must not be used as attribute names:
   
  -* `id`, as it would conflict to the field used to represent entity id.
  -
  -* `type`, as it would conflict to the field used to represent entity type.
  -
  -* `geo:distance`, as it would conflict with the string used in `orderBy` for proximity to center point.
  +* `id`, as it would conflict with the field used to represent entity id.
  +
  +* `type`, as it would conflict with the field used to represent entity type.
  +
  +* `geo:distance`, as it would conflict with the string used in `orderBy` for proximity to
  +  center point.
   
   * Virtual attribute names (see specific section on "Virtual Attributes")
   
   ## Ordering Results
   
  -Operations that retrieve lists of entities allow the `orderBy` URI parameter to specify which attributes or properties will
  -be used as criteria to order results. Its value can be:
  -
  -* The keyword `geo:distance` to order results by distance to a reference geometry when a "near" (`georel=near`) spatial
  -  relationship is used. 
  -
  -* A comma-separated list of attributes (including virtual attributes), e.g. `temperature,!humidity`. Results are ordered
  -  by the first attribute. On ties, the results are ordered by the second attribute and so on. A "!" before the attribute
  -  name means that the order is reversed.
  +Operations that retrieve lists of entities permit the `orderBy` URI parameter to specify the
  +attributes or properties to be be used as criteria when ordering results.
  +The value of `orderBy` can be:
  +
  +* The keyword `geo:distance` to order results by distance to a reference geometry when a "near"
  +  (`georel=near`) spatial relationship is used. 
  +
  +* A comma-separated list of attributes (including virtual attributes), e.g. `temperature,!humidity`.
  +  Results are ordered by the first attribute. On ties, the results are ordered by the second
  +  attribute and so on. A "!" before the attribute name means that the order is reversed.
   
   ## Error Responses
   
  -In the case of being present, the error payload is a JSON object including the following fields:
  +If present, the error payload is a JSON object including the following fields:
   
   + `error` (required, string): a textual description of the error.
   + `description` (optional, string): additional information about the error.
  -+ `affectedItems` (optional, array[string]): a list of elements affected by the error. Depending on the operation, it may
  -  refer to entities, registrations or subscriptions.
  -
  -All NGSIv2 server implementations must use the following HTTP response codes and `error` texts. However, the particular text used for
  -`description` field is an implementation specific aspect.
  ++ `affectedItems` (optional, array[string]): a list of elements affected by the error.
  +  Depending on the operation, it may refer to entities, registrations or subscriptions.
  +
  +All NGSIv2 server implementations must use the following HTTP response codes and `error` texts.
  +However, the particular text used for `description` field is an implementation specific aspect.
   
   Error list (HTTP response code in parenthesis):
   
   * ParseError            (`400`). The incoming JSON payload cannot be parsed.
   * BadRequest            (`400`). The incoming request is invalid in this context.
  -* NotFound              (`404`). The resource (entity, subscription, etc.) referred in the request has not been found.
  -* TooManyResults        (`409`). There are several results that match with the resource identification used by the request.
  +* NotFound              (`404`). The resource (entity, subscription, etc.) referred in the request
  +  has not been found.
  +* TooManyResults        (`409`). There are several results that match with the resource identification
  +  used in the request.
   * ContentLengthRequired (`411`). Zero/No Content-Length in PUT/POST/PATCH request.
   * RequestEntityTooLarge (`413`). Payload is too large.
   * UnsupportedMediaType  (`415`). Request content type is not supported.
  
positive.code: }
  ```
  
  * *values mode*. This mode represents the entity only by a collection of attribute values conveyed by an Array. Id and type information are left out.
    See example below. The order of the attributes in the Array is specified by the `attrs` URI param (e.g. `attrs=branch,colour,engine`) or arbitrary
    order in the case `attrs` is not used.
  
  ```
  [ 'Ford', 'black', 78.3 ]
  ```
  
  * *unique mode*. This mode is just like *values mode*, with the only difference that values are not repeated.
  
  ## Partial Representations
  
  Some operations imply that only a partial representation of an entity will be provided, which are summarized below:
  
  * `id` and `type` are not allowed in update operations, as they are inmutable properties.
  
  * In the requests in which entity `type` is allowed, it may be omitted. When omitted in entity creation operations,
    the default string value `none` is used for the type.
  
  * In some cases, not all the attributes of the entity are shown, e.g. a query which selects a subset of entity attributes.
  
  * Attribute/metadata `value` may be omitted in requests, meaning that the attribute/metadata has `null` value. It is always present in responses.
  
  * Attribute/metadata `type` may be ommitted in requests. When omitted in attribute/metadata creation or update operations, the default
    string value `none` is used for the type.
  
  * Attribute `metadata` may be ommitted in requests, meaning that there are not metadata elements associated to the attribute. In responses, this property is set to
    `{}` if the attribute doesn't have metadata.
  
  
  ## Special Attribute Types
  
  Generally speaking, user-defined attribute types are informative, they are processed by the NGSIv2 server in
  an opaque way. Nonetheless, the types described below are used to convey an special meaning
  
  * `date`:  identifies dates, in ISO8601 format. These attributes can be used with the
    greater than, less than, greater or equal, lesser or equal and range query operators. For instance
    (only the referred entity attribute is shown) :
  
  ```
  {
  
negative.code: 
  In the NGSI data model, attributes have an *attribute name*,
  an *attribute type*, an *attribute value* and *metadata*. 
  * The attribute name describes what kind of property the attribute value represents of the entity,
  for example *current_speed*.
  * The attribute type represents the NGSI value type of the attribute value.
  Note that FIWARE NGSI has its own type system for attribute values, so NGSI value types are not
  the same as JSON types.
  * The attribute value finally contains
    * the actual data
    * optional **metadata** describing properties of the attribute value like e.g. accuracy, provider,
      or a timestamp
    
  #### Context Metadata
  
  Context metadata is used in FIWARE NGSI in several places, one of
  them being an optional part of the attribute value as described
  above. Similar to attributes, each piece of metadata has:
   * **a metadata name**, describing the role of the metadata in the
   place where it occurs; for example, the metadata name *accuracy* 
   indicates that the metadata value describes how accurate a given 
   attribute value is
   * a **metadata type**, describing the NGSI value type of the metadata value
   * a **metadata value** containing the actual metadata
  
  Note that in NGSI it is not foreseen that metadata may contain nested metadata.
  
  #### Restrictions and Operation Scopes
  
  