digraph moralCircleTerms {
forcelabels=true;
graph [fontname = "Handlee"];
node [fontname = "Sedgwick Ave" shape = "box"];
edge [fontname = "Handlee" lblstyle="above, sloped"];
circle [label = "Moral circle"];
boundary [label = "Moral boundary"];
agency [label = "Moral agency"];
patient [label = "Moral patient"];
subject [label = "Welfare subject"];
concern [label = "Moral concern/value/\nworth/weight"];
standing [label = "Moral standing"];
status [label = "Moral status"];
capacity [label = "Capacity for\nwelfare"];
adjustedWelfare [label = "Status-adjusted\nwelfare"];
dimension [label = "Moral dimension"];
MCE [label = "Moral Circle\nExpansion (MCE)"];
circle -> patient [label = "entity\nwithin" dir="back"];
patient -> agency [label = "has"];
patient -> standing [label = "has"];
subject -> patient [label = "another term for?" style=dashed constraint=false];
boundary -> circle [label = "another\ term for" constraint=false];
patient -> concern [label = "has"];
patient -> status [label = "has"];
status -> standing [label = "measure of" ];
subject -> capacity [label = "has"];
capacity -> adjustedWelfare [label = "based on" dir="back"];
status -> adjustedWelfare [label = "based on" dir="back"];
concern -> adjustedWelfare [label = "based on"];
concern -> status [label = "based on"];
concern -> capacity [label = "based on"];
subject -> adjustedWelfare [label = "has"];
status -> dimension [label = "measured on"];
capacity -> dimension [label = "measured on"];
MCE -> circle [label = "expands"];
{rank = same; patient; subject;}
{rank = same; circle; boundary;}
}