GraphLayout specification can take complex forms, where we can specify separate vertex layouts, edge layout and packing layouts. Often each of these takes more sub-options.
Is the graph layout framework similarly extensible? Can we create our own vertex, edge or packing layout methods? Can we re-use the existing methods for other problems in isolation (e.g. pack something else than graph components)?