SimpleAttribute String {}
SimpleAttribute Boolean {}

Class Rule {
    name : String
}

Class Node {
    value? : String
}

Class Match : Node {
    match? : Boolean
}
Class Create : Node {}
Class NAC : Node {
    match : Boolean
}
Class Root : Node {}

Association contains (Rule, Node) {}

Association Edge : Node (Node, Node) {
    name? : String
}

Association CreateEdge : Edge (Node, Node) {}
Association MatchEdge : Edge (Node, Node) {}
Association DeleteEdge : MatchEdge (Node, Node) {}
Association NACEdge : MatchEdge (Node, Node) {}
