graph Perl {
	graph [compound=1, concentrate=1, mindist="0.1", rankdir=LR, sep="0.1", smoothing=triangle, splines=spline];
	node [label="\N", shape=record, style=dotted];
	edge [minlen=1];
	subgraph cluster_1 {
		graph [rankdir=TD,
			label="MetaPOD::"];
		subgraph cluster_2 {
			graph [label="MetaPOD::Format::JSON::"];
			"MetaPOD::Format::JSON::Decoder::v1" [label="{{<port1> role}|<port2> MetaPOD::Format::JSON::Decoder::v1}", shape=Mrecord, style=solid, color="#15b01a", fontsize=7, height="0.1"];
			"MetaPOD::Format::JSON::PostCheck::v1" [label="{{<port1> role}|<port2> MetaPOD::Format::JSON::PostCheck::v1}", shape=Mrecord, style=solid, color="#15b01a", fontsize=7, height="0.1"];
			"MetaPOD::Format::JSON::does::v1" [label="{{<port1> role}|<port2> MetaPOD::Format::JSON::does::v1}", shape=Mrecord, style=solid, color="#15b01a", fontsize=7, height="0.1"];
			"MetaPOD::Format::JSON::inherits::v1" [label="{{<port1> role}|<port2> MetaPOD::Format::JSON::inherits::v1}", shape=Mrecord, style=solid, color="#15b01a", fontsize=7, height="0.1"];
			"MetaPOD::Format::JSON::interface::v1_1" [label="{{<port1> role}|<port2> MetaPOD::Format::JSON::interface::v1_1}", shape=Mrecord, style=solid, color="#15b01a", fontsize=7, height="0.1"];
			"MetaPOD::Format::JSON::namespace::v1" [label="{{<port1> role}|<port2> MetaPOD::Format::JSON::namespace::v1}", shape=Mrecord, style=solid, color="#15b01a", fontsize=7, height="0.1"];
			"MetaPOD::Format::JSON::v1" [label="{{<port1> single_class}|<port2> MetaPOD::Format::JSON::v1}", shape=Mrecord, style=solid, color="#0343df", fontsize=7, height="0.1"];
			"MetaPOD::Format::JSON::v1_1" [label="{{<port1> single_class}|<port2> MetaPOD::Format::JSON::v1_1}", shape=Mrecord, style=solid, color="#0343df", fontsize=7, height="0.1"];
			"MetaPOD::Format::JSON::Decoder::v1" -- "MetaPOD::Format::JSON::v1" [arrowhead=open, arrowsize="0.5", color="#653700", dir=forward, fontsize=6, headclip=1, label="consumed by", tailclip=1, weight=1];
			"MetaPOD::Format::JSON::PostCheck::v1" -- "MetaPOD::Format::JSON::v1" [arrowhead=open, arrowsize="0.5", color="#653700", dir=forward, fontsize=6, headclip=1, label="consumed by", tailclip=1, weight=1];
			"MetaPOD::Format::JSON::does::v1" -- "MetaPOD::Format::JSON::v1" [arrowhead=open, arrowsize="0.5", color="#653700", dir=forward, fontsize=6, headclip=1, label="consumed by", tailclip=1, weight=1];
			"MetaPOD::Format::JSON::inherits::v1" -- "MetaPOD::Format::JSON::v1" [arrowhead=open, arrowsize="0.5", color="#653700", dir=forward, fontsize=6, headclip=1, label="consumed by", tailclip=1, weight=1];
			"MetaPOD::Format::JSON::namespace::v1" -- "MetaPOD::Format::JSON::v1" [arrowhead=open, arrowsize="0.5", color="#653700", dir=forward, fontsize=6, headclip=1, label="consumed by", tailclip=1, weight=1];
			"MetaPOD::Format::JSON::v1" -- "MetaPOD::Format::JSON::v1_1" [arrowhead=open, arrowsize="0.5", color="#ff81c0", dir=forward, fontsize=6, headclip=1, label="inherited by", tailclip=1, weight=100];
			"MetaPOD::Format::JSON::interface::v1_1" -- "MetaPOD::Format::JSON::v1_1" [arrowhead=open, arrowsize="0.5", color="#653700", dir=forward, fontsize=6, headclip=1, label="consumed by", tailclip=1, weight=1];
		}
		"MetaPOD::Assembler" [label="{{<port1> class}|<port2> MetaPOD::Assembler}", shape=Mrecord, style=solid, color="#7e1e9c", fontsize=7, height="0.1"];
		"MetaPOD::Exception" [label="{{<port1> class}|<port2> MetaPOD::Exception}", shape=Mrecord, style=solid, color="#7e1e9c", fontsize=7, height="0.1"];
		"MetaPOD::Exception::Decode::Data" [label="{{<port1> class}|<port2> MetaPOD::Exception::Decode::Data}", shape=Mrecord, style=solid, color="#7e1e9c", fontsize=7, height="0.1"];
		"MetaPOD::Extractor" [label="{{<port1> class}|<port2> MetaPOD::Extractor}", shape=Mrecord, style=solid, color="#7e1e9c", fontsize=7, height="0.1"];
		"MetaPOD::Format::JSON" [label="{{<port1> single_class}|<port2> MetaPOD::Format::JSON}", shape=Mrecord, style=solid, color="#0343df", fontsize=7, height="0.1"];
		"MetaPOD::JSON" [label="<port1> MetaPOD::JSON"];
		"MetaPOD::Result" [label="{{<port1> class}|<port2> MetaPOD::Result}", shape=Mrecord, style=solid, color="#7e1e9c", fontsize=7, height="0.1"];
		"MetaPOD::Role::Format" [label="{{<port1> role}|<port2> MetaPOD::Role::Format}", shape=Mrecord, style=solid, color="#15b01a", fontsize=7, height="0.1"];
		"MetaPOD::Spec" [label="<port1> MetaPOD::Spec"];
		"MetaPOD::Role::Format" -- "MetaPOD::Format::JSON" [arrowhead=open, arrowsize="0.5", color="#653700", dir=forward, fontsize=6, headclip=1, label="consumed by", tailclip=1, weight=1];
		"MetaPOD::Exception" -- "MetaPOD::Exception::Decode::Data" [arrowhead=open, arrowsize="0.5", color="#ff81c0", dir=forward, fontsize=6, headclip=1, label="inherited by", tailclip=1, weight=100];
	}
	subgraph cluster_3 {
		graph [rankdir=TD,
			label="MetaPOD::Format::JSON::"];
	}
	MetaPOD [label="<port1> MetaPOD"];
	"Moo::Object" [label="<port1> Moo::Object"];
	"Pod::Eventual" [label="<port1> Pod::Eventual"];
	"Throwable::Error" [label="<port1> Throwable::Error"];
	"Moo::Object" -- "MetaPOD::Assembler" [arrowhead=open, arrowsize="0.5", color="#ff81c0", dir=forward, fontsize=6, headclip=1, label="inherited by", tailclip=1, weight=100];
	"Throwable::Error" -- "MetaPOD::Exception" [arrowhead=open, arrowsize="0.5", color="#ff81c0", dir=forward, fontsize=6, headclip=1, label="inherited by", tailclip=1, weight=100];
	"Pod::Eventual" -- "MetaPOD::Extractor" [arrowhead=open, arrowsize="0.5", color="#ff81c0", dir=forward, fontsize=6, headclip=1, label="inherited by", tailclip=1, weight=100];
	"Moo::Object" -- "MetaPOD::Result" [arrowhead=open, arrowsize="0.5", color="#ff81c0", dir=forward, fontsize=6, headclip=1, label="inherited by", tailclip=1, weight=100];
	"Moo::Object" -- "MetaPOD::Format::JSON" [arrowhead=open, arrowsize="0.5", color="#ff81c0", dir=forward, fontsize=6, headclip=1, label="inherited by", tailclip=1, weight=100];
	"Moo::Object" -- "MetaPOD::Format::JSON::v1" [arrowhead=open, arrowsize="0.5", color="#ff81c0", dir=forward, fontsize=6, headclip=1, label="inherited by", tailclip=1, weight=100];
}