ModuleX {
    description "Test Module X"
    dependencies "1.0" {
        ModuleA ">=1.2"
        ModuleB "2.0"
    }
    dependencies "2.0" {
        ModuleA ">=1.5" optional=#true
        ModuleB ">=3.0"
    }
}
ModuleA {
    dependencies "1.2" {
        ModuleC "3.0"
    }
    dependencies "1.5" {
        ModuleC "<=4.1"
    }
}
ModuleB {
    dependencies "2.0" {// No dependencies

    }
    dependencies "3.0" {
        ModuleD "1.0" optional=#true
    }
}
ModuleC {
    dependencies "3.0" {// No dependencies

    }
    dependencies "4.0" {// No dependencies

    }
    dependencies "4.1" {// No dependencies
        ModuleB ">=2.0"
    }
}