MUTED

//
//        RA                  RB
//         rAJvm    <-------    rBJvm
//         rAJs     <-------    rBJs
//
//            ^                   ^
//            |                   |
//        A
//         aCommon              B
//          aCommonClient        bCommon      R
//            aJvmClient  <------ bJvm   <---  rJvm
//            aJsClient   <------ bJs    <---  rJs
//          aCommonServer
//            aJvmServer
//            aJsServer
//
//  - `rA*`, `rB*` regular dependent module groups - for testing `common-on-platform -> regular` dependency
//  - `aCommon*`, `bCommon` - common modules
//  - `aCommonClient`, `aCommonServer` - for testings `common -> common` dependency
//  - aJvmClient/aJvmServer, aJsClient/aJsServer - for testing two implementation on same platform
//  - `b*` - for testings `common-on-platform -> common-on-platform` dependency
//  - `r*` - regular modules for testings `regular -> common-on-platform` dependency
//

//////  RA //////

raJvm [jvm, edit]
raJs [js, edit]

////// RB //////

rbJvm [jvm]
rbJvm -> raJvm [compile]

rbJs [js]
rbJs -> raJs [compile]

////// A //////

aCommon [common, editExpectActual]

aCommonClient [common]
aCommonClient -> aCommon [compile]

aCommonServer [common]
aCommonServer -> aCommon [compile]

aJvmClient [jvm, edit, editJvm]
aJvmClient -> aCommon [expectedBy]
aJvmClient -> aCommonClient [expectedBy]
aJvmClient -> raJvm [compile]

aJvmServer [jvm]
aJvmServer -> aCommon [expectedBy]
aJvmServer -> aCommonServer [expectedBy]
aJvmServer -> raJvm [compile]

aJsClient [js, edit]
aJsClient -> aCommon [expectedBy]
aJsClient -> aCommonClient [expectedBy]
aJsClient -> raJs [compile]

aJsServer [js]
aJsServer -> aCommon [expectedBy]
aJsServer -> aCommonServer [expectedBy]
aJsServer -> raJs [compile]

////// B //////

bCommon [common, editExpectActual]
bCommon -> aCommon [compile]

bJvm [jvm]
bJvm -> bCommon [expectedBy]
bJvm -> aJvmClient [compile]
bJvm -> raJvm [compile]
bJvm -> rbJvm [compile]

bJs [js]
bJs -> bCommon [expectedBy]
bJs -> aJsClient [compile]
bJs -> raJs [compile]
bJs -> rbJs [compile]

////// R //////

rJvm [jvm, edit]
rJvm -> raJvm [compile]
rJvm -> rbJvm [compile]
rJvm -> bJvm [compile]
rJvm -> aJvmClient [compile]

rJs [js, edit]
rJs -> raJs [compile]
rJs -> rbJs [compile]
rJs -> bJs [compile]
rJs -> aJsClient [compile]