- ILineConnection
> ILink

> extends ISerializable, ILockable, IDisposable;
> + get/set inputPort;
> + get/set outputPort;
+ ILinkProvider

> provideLink(input:IPort, output:IPort):ILink;
> DirectLink

> SimpleLineConnection -> DirectLink;
> DirectLink implements ILink
> minor
+ NodeSystemElementType
+ ISerializable
+DirectLinkProvider
+ NodeLink

base node link class
> VacuumLayout uses link provider
> IPort

> + get node
> BezierQuadConnection extends NodeLink

unstable, untested
MouseVertex fix: IPort::node
> NodeSystem uses DirectLinkProvider for links

// developing feature
> ILink::index (uint) -> ILink::id (String)
> NodeSystem

> connection.vacuumIndex -> connection.vacuumLinkID
> ILinkProvider::provideLink(input, output) -> ILinkProvider::provideLink(output, input)
> VacuumLayout bug fix: updating of existed link
> NodeLink not calling init() in constructor
> direct links

> DirectLinkProvider::_layer -> DirectLinkProvider::_canvas
> minor
> BezierQuadLink

> BezierQuadConnection -> BezierQuadLink
> this implementation not using RibbonVertex