digraph Foo {
	layout=neato;
	remincross=true;
	aspect=1;
	
	subgraph cluster_StrikeCraft {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		
		Scout [shape=diamond];
		Interceptor [shape=diamond];
		StandardCorvette [shape=diamond];
		HeavyCorvette [shape=diamond];
		Defender [shape=diamond];
	}
	subgraph cluster_Craft {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		
		IonCorvette [shape=diamond];
		Bomber [shape=diamond];
		Carrier [shape=diamond];
		Battlecarrier [shape=diamond];
		AssaultFrigate [shape=diamond];
		SupportFrigate [shape=diamond];
		StandardDestroyer [shape=diamond];
		DroneDestroyer [shape=diamond];
		MissileDestroyer [shape=diamond];
	}
	subgraph cluster_CloakedCraft {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		
		CloakedDestroyer [shape=diamond];
		CloakedInterceptor [shape=diamond];
		CloakedDefender [shape=diamond];
		CloakedBomber [shape=diamond];
	}
	
	StrikeCraftDrive [shape=box];
	StrikeCraftChassis [shape=box];
	HeavyStrikeCraftDrive [shape=box];
	HeavyStrikeCraftChassis [shape=box];
	
	subgraph cluster_StrikeCraftTechs {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		
		StrikeCraftDrive -> StrikeCraftChassis [style=bold];
		StrikeCraftChassis -> HeavyStrikeCraftDrive [style=bold];
		HeavyStrikeCraftDrive -> HeavyStrikeCraftChassis [style=bold];
		label = "Strike Craft";
	}
	
	
	CapitalShipDrive [shape=box];
	CapitalShipChassis [shape=box];
	SuperCapitalShipDrive [shape=box];
	SuperCapitalShipChassis [shape=box];
	
	subgraph cluster_CapshipTechs {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		
		CapitalShipDrive -> CapitalShipChassis [style=bold];
		CapitalShipChassis -> SuperCapitalShipDrive [style=bold];
		SuperCapitalShipDrive -> SuperCapitalShipChassis [style=bold];
		label = "Capital Ships";
	}
	
	
	CapitalShipDrive -> SupportFrigate;
	CapitalShipChassis -> AssaultFrigate;
	SuperCapitalShipDrive -> StandardDestroyer;
	SuperCapitalShipDrive -> CloakedDestroyer;
	SuperCapitalShipDrive -> DroneDestroyer;
	SuperCapitalShipDrive -> MissileDestroyer;
	SuperCapitalShipChassis -> Carrier;
	
	
	HeavyMissiles [shape=box];
	HeavyMissiles -> MissileDestroyer;
	
	
	DroneManagement [shape=box];
	DroneManagement -> DroneDestroyer;
	
	// Not sure here, original graph is unclear.
	// Some of these might require MiniaturizedCloakSails.
	CloakSails [shape=box];
	MiniaturizedCloakSails [shape=box];
	subgraph cluster_CloakSailTechs {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		
		CloakSails -> MiniaturizedCloakSails [style=bold];
		label = "Cloak Sails";
	}
	CloakSails -> CloakedInterceptor;
	CloakSails -> CloakedBomber;
	CloakSails -> CloakedDefender;
	CloakSails -> CloakedDestroyer;
	
	
	IonCannons [shape=box];
	MiniaturizedIonCannons [shape=box];
	subgraph cluster_IonCannons {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		
		IonCannons -> MiniaturizedIonCannons [style=bold];
		label = "Ion Cannons";
	}
	IonCannons -> StandardDestroyer;
	IonCannons -> CloakedDestroyer;
	IonCannons -> Battlecarrier;
	IonCannons -> Cruiser;
	
	
	LightEnergyCannons [shape=box];
	HeavyEnergyCannons [shape=box];
	SuperHeavyEnergyCannons [shape=box];
	
	subgraph cluster_EnergyCannons {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		
		LightEnergyCannons -> HeavyEnergyCannons [style=bold];
		HeavyEnergyCannons  -> SuperHeavyEnergyCannons [style=bold];
		label = "Energy Cannons";
	}
	
	LightEnergyCannons -> Bomber;
	HeavyEnergyCannons -> StandardDestroyer;
	HeavyEnergyCannons -> CloakedDestroyer;
	HeavyEnergyCannons -> Cruiser;
	SuperHeavyEnergyCannons -> IonCorvette;
	SuperHeavyEnergyCannons -> Cruiser;
	
	
	StrikeCraftDrive -> Scout;
	StrikeCraftChassis -> Interceptor;
	StrikeCraftChassis -> Defender;
	StrikeCraftChassis -> Cruiser;
	HeavyStrikeCraftDrive -> StandardCorvette;
	HeavyStrikeCraftChassis -> HeavyCorvette;
}