ideas for future versions:
  @gui
  [ ] performance optimization: redraw only when shown(=visible) items have changed;
      do not redraw 3 times when changing 3 attributes simultaneously. (especially at undo/redo)
  [ ] a "saveAs" or export-as-cfu1 command should allow to copy the current db
  [ ] next to the about button, a help button is needed that can provide context-sensitive information.
  [ ] when opening the second database, the root diagram cannot be focused immediately
  [ ] when opening the second database, switch back to nav view
  [ ] show a progress bar while exporting diagrams (especially for png mode)
  [ ] update search result view when changing the database (e.g. by undo)
  [ ] when selecting a search result, not only jump to the diagram but also focus on the result
  @gui+ctrl
  [ ] When undoing/redoing things, switch to a diagram where you see the changes
  [ ] When pasting a new diagram, switch to the new diagram in nav view to see the changes
  @pencil
  [ ] Support Diagram-Types: Profile
  [ ] exception+error flows to leave an interruptable area (activity diagrams)
  [ ] activity bars on lifelines missing
  [ ] feature compartments in use-cases look ugly
  [ ] more relationship types needed: undirected ---- and one-way x--> and no x--x dependency (non-navigateable ends)
  [ ] more relationship types needed: undirected ---- and one-way x--> and no x--x association
  [ ] sequence diagrams need if/loop-boxes
  [ ] activity diagrams need swimlanes/partitions
  @io
  [ ] export formats: enhance xmi standard compliance
  [ ] how to exclude diagrams from export? some are unimportant and exist just for completeness
  [ ] import XMI format
  [ ] validate export XMI format at http://validator.omg.org/se-interop/tools/validator
      using mof 2.5.1: https://www.omg.org/spec/MOF/20131001/MOF.xmi
      using uml 2.5.1: https://www.omg.org/spec/UML/20161101/StandardProfile.xmi
      using sysml 1.6: https://www.omg.org/spec/SysML/20181001/SysML.xmi
  [ ] xmi export is not spec-compliant for uml:Port, provided and required Interfaces
  @data
  [ ] some diagrams exist for completeness only - but do not contain important information. These shall be greyed out.
      --> add a "display_flags" field to "diagrams"
  [ ] performance optimization: possibly the feature and relationship filter on a visible_set is slow?
  [ ] diagrams need some kind of classification/stereotype like idea-for-future, rejected-alternative, ...
      --> add a "stereotype" field to "diagrams"
  [ ] some way to compare two database files / and/or to merge
  [ ] No lifelines for comments
  [ ] No lifelines for interaction uses
  [ ] links unclear: interactionuse(diag-reference)-to-fragment(diag); part-to-component, object-to-class
  [ ] links unclear: provided/required-interface(feature)-to-interface(classifier)
  @ctrl
  [ ] auto-delete relationships between classifiers that have no diagram in common (are invisible)
  @universal+utf8stringbuf
  [ ] combine the static string allocation with dynamic additional buffers for unexpectedly-long strings
  [ ] combine the static array allocation with dynamic additional buffers for arrays of unpredictable lengths
  @main
  @ts_log/trace/test_fw
