A generic graph framework implementation useful for creating and editing graphs both in the Unity Editor and in Game.Requires Unity's Newtonsoft Json package.A graph framework built with customization and ease of use in mind, by base class derivation, for both editor tooling / editing and runtime graph manipulation.It also provides extensive documentation on everything this framework supports, along with a huge amount of code comments / summaries that help on teaching how it all works.Runtime support is based on the facts that the core provides:Basic functions to easily operate on graphs through code.Overridable functions to tailor graph/node behaviour to your needs.A custom json serializer for serializing graphs and nodes.Some helper functions for typical graph use cases, like checking for trees, etc...Editor support is based on the way that the editor extensions are handled:Graph / Node editors for specific graph / node types, with some implementation cases / examples for included editor functionality.Type based loading / saving / copying of graphs to / from graph fields.Undo/Redo support for most graph editing operations.Features:Serializable Graph / Node / Port:Framework based on data structures non dependent on unity objects.Graph Serializer:Newtonsoft's Json based wrapper class for graph serialization using json.It has special case handling for graphs and nodes.Knots:Add Knots in already made port connections, to extend them.Mainly an editor utility for better port connection organization.Subgraphs:Allows for graphs to have other graphs within it, and supports connections in between them.Dynamic ports:Besides the static ports defined by a node's class, these allow for dynamic port addition / removal to individual nodes.Graph Editor Window:The interface from which graphs can be edited in the Unity Editor.It comes with some quality of life additions such as:Box Selection - Drag to select multiple nodes with shift/control modifiers.Node Finder - Find nodes that may be lost due to them being far from camera view.Node Property Drawer:The interface from which nodes can be edited, in the Graph Editor Window.Dynamic Port Drawer:Allows for Editor display / editing of the values that dynamic ports contain.