{
    "app": {
        "use": [
            "app-base",
            "app-content",
            "app-transitions",
            "lazy-model-list",
            "model",
            "model-list",
            "model-sync-rest",
            "model-sync-local",
            "router",
            "view",
            "view-node-map"
        ],

        "submodules": {
            "app-base": {
                "requires": ["classnamemanager", "pjax-base", "router", "view"]
            },

            "app-content": {
                "requires": ["app-base", "pjax-content"]
            },

            "app-transitions": {
                "requires": ["app-base"]
            },

            "app-transitions-css": {
                "type": "css"
            },

            "app-transitions-native": {
                "condition": {
                    "trigger": "app-transitions",
                    "test"   : "app-transitions-test.js"
                },

                "requires" : [
                    "app-transitions",
                    "app-transitions-css",
                    "parallel",
                    "transition"
                ]
            },

            "controller": {
                "use": ["router"]
            },

            "lazy-model-list": {
                "requires": ["model-list"]
            },

            "model": {
                "requires": ["base-build", "escape", "json-parse"]
            },

            "model-list": {
                "requires": [
                    "array-extras",
                    "array-invoke",
                    "arraylist",
                    "base-build",
                    "escape",
                    "json-parse",
                    "model"
                ]
            },

            "model-sync-local": {
                "requires": [
                    "model",
                    "json-stringify"
                ]
            },

            "model-sync-rest": {
                "requires": [
                    "model",
                    "io-base",
                    "json-stringify"
                ]
            },

            "router": {
                "optional": ["querystring-parse"],
                "requires": ["array-extras", "base-build", "history"]
            },

            "view": {
                "requires": ["base-build", "node-event-delegate"]
            },

            "view-node-map": {
                "requires": ["view"]
            }
        }
    }
}
