Roadmap
-------
The roadmap is in the main docu now. I do not want to maintain a
redundant version here.

TODO
----
The following list contains some things I don't want to
forget. I mainly contains small stuff and specificly no big feature
plans.

- stricter on percentage in colors
- ID and NMTOKEN in %ATTR_VAL
- make sure really all attributes used so far are validated with
  regexes in Specification; it is the goal that each used attribute
  has to pass a non-trivial regex check at this stage
  - stroke, fill
- support other output types than png
- docu error messages
- idea: provide a simple GD backend, just as proof of concept for
  different backends
- wild idea: provide a plotter backend which could be used e.g. by
  robot drawing with a pen
- how can I handle defer in preserveAspectRatio?
- Cairo docu: Exceptions and Warnings
- Cairo docu: possibility of basic shape methods
- merge engine_args
- complete docu of SVG::Rasterize::Cairo, then remove sparseness
  remark in SVG::Rasterize docu
- fix or document color limitation.
- Specification.pm should represent which elements can hold PCDATA
- State: What if the construction parameter matrix is an ARRAY
  reference with invalid data? Is this checked? If not, where does
  the code crash? Do I want to check this?
- split specification into modules; loading could be left to the
  user or done on the fly when a certain element is encountered
  - ATTR_VAL could in principle stay like this, but not be populated
    at the start
  - the validation hash is handed out by a subroutine which checks
    if the respective module has been loaded and loads it otherwise
  Use class entities.
- after release, check links in map_abs_length docu in the HTML
  POD.
- support for relative units
- Class::Accessor methods should throw an exception if argument is
  readonly.
- set_default methods for hooks (maybe call them rather restore_...)
- Cairo docu: draw_text
- State: remove work arounds for text node children and attr checks
- rethink order of rasterization in deferred tree (multiple calls!)
- Can an element have an attribute which a child does not have, but a
  grandchild is supposed to inherit? Check and fix accordingly.
- more text attributes

done (excerpt, containing what I might look at again)
-----------------------------------------------------
- document which DOM functions have to be provided by an input
  object
- homogenize interface docu of methods
- consequent assignments in interface docu of methods with return
  value
- property validation with dedicated %PROP_VAL? - not for now
  -> specific for xsl / css
  -> apply to whole hash after setting of defaults?
  -> element specific?
- clamp color values only at presentation time
- document all regexes
- validation possible for those attributes that still have type
  CDATA? - Some stuff will have to (further) validated in State or
  Rasterize. However, the engine should get clean stuff.
- explicit return in all methods
- Exception::Class classes, which?
- throw InError class from in_error
- validate_with with calling in_error
- replace carps by warns.
- make information available for in_error
- consequently use in_error where required
- remove explicit parameter state to hooks? - No. There might be a
  situation where one wants to give a different state object to the
  hook (see in_error_hook)
- Params::Validate consequently
