anchor.diff:  * `id` is optional but never empty.
   * `marker-{star}` attributes will be set only on paths that were originally
     `path`, `line`, `polyline` or `polygon`.
  +* `marker-{star}` attributes will be removed inside the `clipPath`.
   * If a path contains an ArcTo segment and a marker - it will be rendered incorrectly,
     because `usvg` will convert ArcTo into series of CurveTo's.
   
  
positive.code: The `svg` element is the root element of the document.
  It's defined only once and can't be nested, unlike the SVG spec.
  
  Children: `defs`, `g`, `path`, `text` and `image`.
  
  Attributes: `width`, `height`, `viewBox` and `preserveAspectRatio`.
  
  === defs
  
  Children: `linearGradient`, `radialGradient`, `clipPath`, `mask`, `pattern`,
  `marker` and `filter`.
  
negative.code: [[transform_attr]]
  
  * `transform`
  ** `transform` is always a `matrix`. Never `translate`, `scale`, etc.
  ** Can be skipped.
  * `viewBox`
  ** Can be skipped, because doesn't have a default value.
  * `preserveAspectRatio`
  ** Will be set only when `viewBox` is set.
  