{
    "$schema": "./schema.json",
    "features": {
        "base": {
            "label": "i18n:ENGINE.features.core.label",
            "description": "i18n:ENGINE.features.core.description",
            "default": true,
            "enginePlugin": true,
            "readonly": true,
            "required": true
        },
        "gfx-webgl": {
            "default": true,
            "label": "i18n:ENGINE.features.gfx_webgl.label",
            "description": "i18n:ENGINE.features.gfx_webgl.description",
            "category": "graphics",
            "enginePlugin": true,
            "envCondition": "$HTML5 || $MINIGAME || $RUNTIME_BASED"
        },
        "gfx-webgl2": {
            "label": "i18n:ENGINE.features.gfx_webgl2.label",
            "description": "i18n:ENGINE.features.gfx_webgl2.description",
            "category": "graphics",
            "enginePlugin": true,
            "envCondition": "$HTML5 || $MINIGAME || $RUNTIME_BASED"
        },
        "gfx-webgpu": {
            "label": "i18n:ENGINE.features.gfx_webgpu.label",
            "description": "i18n:ENGINE.features.gfx_webgpu.description",
            "category": "graphics",
            "enginePlugin": false,
            "envCondition": "$HTML5 || $COCOS_RUNTIME"
        },
        "animation": {
            "label": "i18n:ENGINE.features.animation.label",
            "description": "i18n:ENGINE.features.animation.description",
            "default": true,
            "category": "animation"
        },
        "skeletal-animation": {
            "label": "i18n:ENGINE.features.skeletal_animation.label",
            "description": "i18n:ENGINE.features.skeletal_animation.description",
            "default": true,
            "dependencies": [
                "animation"
            ],
            "category": "animation"
        },
        "3d": {
            "default": true,
            "label": "i18n:ENGINE.features.base_3d.label",
            "description": "i18n:ENGINE.features.base_3d.description",
            "enginePlugin": true,
            "isNativeModule": true,
            "readonly": false,
            "dependencies": [
                "meshopt"
            ],
            "category": "3d"
        },
        "meshopt": {
            "default": false,
            "hidden": true,
            "category": "3d"
        },
        "2d": {
            "default": true,
            "label": "i18n:ENGINE.features.base_2d.label",
            "description": "i18n:ENGINE.features.base_2d.description",
            "category": "2d",
            "readonly": false,
            "enginePlugin": true
        },
        "sorting-2d": {
            "default": false,
            "label": "i18n:ENGINE.features.sorting_2d.label",
            "description": "i18n:ENGINE.features.sorting_2d.description",
            "category": "2d",
            "dependencies": [
                "2d"
            ],
            "enginePlugin": true
        },
        "rich-text": {
            "default": true,
            "label": "i18n:ENGINE.features.rich_text.label",
            "description": "i18n:ENGINE.features.rich_text.description",
            "category": "2d",
            "dependencies": [
                "2d"
            ],
            "enginePlugin": true
        },
        "mask": {
            "default": true,
            "label": "i18n:ENGINE.features.mask.label",
            "description": "i18n:ENGINE.features.mask.description",
            "category": "2d",
            "dependencies": [
                "2d",
                "graphics"
            ],
            "enginePlugin": true
        },
        "graphics": {
            "default": true,
            "label": "i18n:ENGINE.features.graphics_2d.label",
            "description": "i18n:ENGINE.features.graphics_2d.description",
            "category": "2d",
            "dependencies": [
                "2d"
            ],
            "enginePlugin": true
        },
        "ui-skew": {
            "default": true,
            "label": "i18n:ENGINE.features.ui_skew.label",
            "description": "i18n:ENGINE.features.ui_skew.description",
            "category": "2d",
            "dependencies": [
                "2d"
            ],
            "enginePlugin": true
        },
        "affine-transform": {
            "label": "i18n:ENGINE.features.affine_transform.label",
            "description": "i18n:ENGINE.features.affine_transform.description",
            "default": true,
            "category": "2d"
        },
        "ui": {
            "default": true,
            "label": "i18n:ENGINE.features.ui.label",
            "description": "i18n:ENGINE.features.ui.description",
            "category": "2d",
            "dependencies": [
                "2d"
            ],
            "enginePlugin": true
        },
        "particle": {
            "default": true,
            "label": "i18n:ENGINE.features.particle.label",
            "description": "i18n:ENGINE.features.particle.description",
            "category": "3d",
            "dependencies": [
                "3d"
            ],
            "enginePlugin": true
        },
        "physics": {
            "label": "i18n:ENGINE.features.physics.label",
            "description": "i18n:ENGINE.features.physics.description",
            "category": "3d",
            "dependencies": [
                "3d"
            ],
            "options": {
                "physics-ammo": {
                    "label": "i18n:ENGINE.features.physics_ammo.label",
                    "description": "i18n:ENGINE.features.physics_ammo.description",
                    "default": true,
                    "isNativeModule": true,
                    "flags": {
                        "LOAD_BULLET_MANUALLY": {
                            "label": "i18n:ENGINE.features.flags.bullet.loadManual.label",
                            "description": "i18n:ENGINE.features.flags.bullet.loadManual.description",
                            "default": false,
                            "ui-type": "checkbox"
                        }
                    }
                },
                "physics-cannon": {
                    "label": "i18n:ENGINE.features.physics_cannon.label",
                    "description": "i18n:ENGINE.features.physics_cannon.description"
                },
                "physics-physx": {
                    "label": "i18n:ENGINE.features.physics_physx.label",
                    "cmakeConfig": "USE_PHYSICS_PHYSX",
                    "description": "i18n:ENGINE.features.physics_physx.description",
                    "isNativeModule": true,
                    "flags": {
                        "LOAD_PHYSX_MANUALLY": {
                            "label": "i18n:ENGINE.features.flags.physx.loadManual.label",
                            "description": "i18n:ENGINE.features.flags.physx.loadManual.description",
                            "default": false,
                            "ui-type": "checkbox"
                        }
                    }
                },
                "physics-builtin": {
                    "label": "i18n:ENGINE.features.physics_builtin.label",
                    "description": "i18n:ENGINE.features.physics_builtin.description"
                }
            }
        },
        "physics-2d": {
            "label": "i18n:ENGINE.features.physics_2d.label",
            "description": "i18n:ENGINE.features.physics_2d.description",
            "category": "2d",
            "dependencies": [
                "2d"
            ],
            "options": {
                "physics-2d-box2d": {
                    "label": "i18n:ENGINE.features.physics_2d_box2d.label",
                    "description": "i18n:ENGINE.features.physics_2d_box2d.description",
                    "default": true,
                    "isNativeModule": true
                },
                "physics-2d-box2d-wasm": {
                    "label": "i18n:ENGINE.features.physics_2d_box2d_wasm.label",
                    "description": "i18n:ENGINE.features.physics_2d_box2d_wasm.description",
                    "flags": {
                        "LOAD_BOX2D_MANUALLY": {
                            "label": "i18n:ENGINE.features.flags.box2d.loadManual.label",
                            "description": "i18n:ENGINE.features.flags.box2d.loadManual.description",
                            "ui-type": "checkbox",
                            "default": false
                        }
                    }
                },
                "physics-2d-builtin": {
                    "label": "i18n:ENGINE.features.physics_2d_builtin.label",
                    "description": "i18n:ENGINE.features.physics_2d_builtin.description"
                },
                "physics-2d-box2d-jsb": {
                    "isNativeModule": true,
                    "cmakeConfig": "USE_BOX2D_JSB",
                    "label": "i18n:ENGINE.features.physics_2d_box2d_jsb.label",
                    "description": "i18n:ENGINE.features.physics_2d_box2d_jsb.description",
                    "envCondition": "$NATIVE",
                    "fallback": "physics-2d-box2d-wasm"
                }
            }
        },
        "intersection-2d": {
            "default": true,
            "label": "i18n:ENGINE.features.intersection_2d.label",
            "description": "i18n:ENGINE.features.intersection_2d.description",
            "enginePlugin": true,
            "category": "2d",
            "dependencies": [
                "2d"
            ]
        },
        "primitive": {
            "default": true,
            "label": "i18n:ENGINE.features.primitives.label",
            "description": "i18n:ENGINE.features.primitives.description",
            "enginePlugin": true,
            "category": "3d",
            "dependencies": [
                "3d"
            ]
        },
        "profiler": {
            "default": true,
            "label": "i18n:ENGINE.features.profiler.label",
            "description": "i18n:ENGINE.features.profiler.description",
            "enginePlugin": true
        },
        "occlusion-query": {
            "default": false,
            "label": "i18n:ENGINE.features.occlusion_query.label",
            "description": "i18n:ENGINE.features.occlusion_query.description",
            "cmakeConfig": "USE_OCCLUSION_QUERY",
            "enginePlugin": false,
            "category": "3d",
            "dependencies": [
                "3d"
            ]
        },
        "geometry-renderer": {
            "default": false,
            "label": "i18n:ENGINE.features.geometry_renderer.label",
            "description": "i18n:ENGINE.features.geometry_renderer.description",
            "cmakeConfig": "USE_GEOMETRY_RENDERER",
            "enginePlugin": true,
            "category": "3d",
            "dependencies": [
                "3d"
            ]
        },
        "debug-renderer": {
            "default": false,
            "label": "i18n:ENGINE.features.debug_renderer.label",
            "description": "i18n:ENGINE.features.debug_renderer.description",
            "cmakeConfig": "USE_DEBUG_RENDERER",
            "enginePlugin": false,
            "category": "3d",
            "dependencies": [
                "3d"
            ]
        },
        "particle-2d": {
            "default": true,
            "label": "i18n:ENGINE.features.particle_2d.label",
            "description": "i18n:ENGINE.features.particle_2d.description",
            "enginePlugin": true,
            "category": "2d",
            "dependencies": [
                "2d"
            ]
        },
        "audio": {
            "default": true,
            "label": "i18n:ENGINE.features.audio.label",
            "description": "i18n:ENGINE.features.audio.description",
            "cmakeConfig": "USE_AUDIO",
            "enginePlugin": true
        },
        "video": {
            "default": true,
            "label": "i18n:ENGINE.features.video.label",
            "description": "i18n:ENGINE.features.video.description",
            "cmakeConfig": "USE_VIDEO",
            "enginePlugin": true
        },
        "webview": {
            "default": true,
            "label": "i18n:ENGINE.features.webview.label",
            "description": "i18n:ENGINE.features.webview.description",
            "cmakeConfig": "USE_WEBVIEW",
            "enginePlugin": true
        },
        "tween": {
            "default": true,
            "label": "i18n:ENGINE.features.tween.label",
            "description": "i18n:ENGINE.features.tween.description",
            "enginePlugin": true
        },
        "websocket": {
            "default": true,
            "label": "i18n:ENGINE.features.websocket.label",
            "description": "i18n:ENGINE.features.websocket.description",
            "cmakeConfig": "USE_SOCKET",
            "enginePlugin": false,
            "category": "network"
        },
        "websocket-server": {
            "default": false,
            "label": "i18n:ENGINE.features.websocket_server.label",
            "description": "i18n:ENGINE.features.websocket_server.description",
            "cmakeConfig": "USE_WEBSOCKET_SERVER",
            "enginePlugin": false,
            "category": "network"
        },
        "terrain": {
            "default": true,
            "label": "i18n:ENGINE.features.terrain.label",
            "description": "i18n:ENGINE.features.terrain.description",
            "enginePlugin": true,
            "category": "3d",
            "dependencies": [
                "3d"
            ]
        },
        "light-probe": {
            "default": true,
            "label": "i18n:ENGINE.features.light_probe.label",
            "description": "i18n:ENGINE.features.light_probe.description",
            "enginePlugin": true,
            "category": "3d",
            "dependencies": [
                "3d"
            ]
        },
        "tiled-map": {
            "default": true,
            "label": "i18n:ENGINE.features.tiled_map.label",
            "description": "i18n:ENGINE.features.tiled_map.description",
            "enginePlugin": true,
            "category": "2d",
            "dependencies": [
                "2d"
            ]
        },
        "vendor-google": {
            "default": false,
            "label": "i18n:ENGINE.features.vendor_google.label",
            "description": "i18n:ENGINE.features.vendor_google.description",
            "enginePlugin": false,
            "isNativeModule": true,
            "cmakeConfig": "USE_VENDOR",
            "hidden": true,
            "envCondition": "$ANDROID"
        },
        "spine": {
            "label": "i18n:ENGINE.features.spine.label",
            "description": "i18n:ENGINE.features.spine.description",
            "category": "2d",
            "dependencies": [
                "2d"
            ],
            "options": {
                "spine-3.8": {
                    "enginePlugin": true,
                    "cmakeConfig": "USE_SPINE_3_8",
                    "default": true,
                    "isNativeModule": true,
                    "label": "i18n:ENGINE.features.spine_38.label",
                    "description": "i18n:ENGINE.features.spine_38.description",
                    "flags": {
                        "LOAD_SPINE_MANUALLY": {
                            "label": "i18n:ENGINE.features.flags.spine.loadManual.label",
                            "description": "i18n:ENGINE.features.flags.spine.loadManual.description",
                            "ui-type": "checkbox",
                            "default": false
                        }
                    }
                },
                "spine-4.2": {
                    "enginePlugin": true,
                    "cmakeConfig": "USE_SPINE_4_2",
                    "default": false,
                    "isNativeModule": true,
                    "label": "i18n:ENGINE.features.spine_42.label",
                    "description": "i18n:ENGINE.features.spine_42.description",
                    "flags": {
                        "LOAD_SPINE_MANUALLY": {
                            "label": "i18n:ENGINE.features.flags.spine.loadManual.label",
                            "description": "i18n:ENGINE.features.flags.spine.loadManual.description",
                            "ui-type": "checkbox",
                            "default": false
                        }
                    }
                }
            }
        },
        "dragon-bones": {
            "default": true,
            "label": "i18n:ENGINE.features.dragon_bones.label",
            "description": "i18n:ENGINE.features.dragon_bones.description",
            "cmakeConfig": "USE_DRAGONBONES",
            "enginePlugin": true,
            "category": "2d",
            "dependencies": [
                "2d"
            ]
        },
        "marionette": {
            "default": true,
            "label": "i18n:ENGINE.features.marionette.label",
            "description": "i18n:ENGINE.features.marionette.description",
            "enginePlugin": false,
            "dependencies": [
                "animation"
            ],
            "category": "animation"
        },
        "procedural-animation": {
            "default": false,
            "label": "i18n:ENGINE.features.procedural_animation.label",
            "description": "i18n:ENGINE.features.procedural_animation.description",
            "enginePlugin": false,
            "dependencies": [
                "animation"
            ],
            "category": "animation"
        },
        "custom-pipeline-post-process": {
            "default": false,
            "label": "i18n:ENGINE.features.custom_pipeline_post_process.label",
            "description": "i18n:ENGINE.features.custom_pipeline_post_process.description",
            "enginePlugin": false,
            "hidden": true
        },
        "render-pipeline": {
            "label": "i18n:ENGINE.features.render-pipeline.label",
            "description": "i18n:ENGINE.features.render-pipeline.description",
            "category": "graphics",
            "required": true,
            "hidden": true,
            "options": {
                "custom-pipeline": {
                    "default": true,
                    "enginePlugin": false
                },
                "legacy-pipeline": {
                    "default": false,
                    "enginePlugin": false
                }
            }
        },
        "xr": {
            "default": false,
            "label": "i18n:ENGINE.features.xr.label",
            "description": "i18n:ENGINE.features.xr.description",
            "enginePlugin": false,
            "envCondition": "$NATIVE || $HTML5"
        }
    },
    "categories": {
        "graphics": {
            "label": "i18n:ENGINE.features.graphics.label",
            "description": "i18n:ENGINE.features.graphics.description",
            "checkable": true,
            "required": true
        },
        "2d": {
            "label": "i18n:ENGINE.features.categories.2d.label",
            "description": "i18n:ENGINE.features.categories.2d.description",
            "checkable": true
        },
        "3d": {
            "label": "i18n:ENGINE.features.categories.3d.label",
            "description": "i18n:ENGINE.features.categories.3d.description",
            "checkable": true
        },
        "animation": {
            "label": "i18n:ENGINE.features.categories.animation.label",
            "description": "i18n:ENGINE.features.categories.animation.description",
            "checkable": true
        },
        "network": {
            "label": "i18n:ENGINE.features.categories.network.label",
            "description": "i18n:ENGINE.features.categories.network.description",
            "checkable": true
        }
    }
}
