[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema","title":"ui5.yaml","description":"Schema for UI5 Tooling Configuration File (ui5.yaml)","$comment":"See https://sap.github.io/ui5-tooling/","type":"object","required":["specVersion"],"properties":{"specVersion":{"enum":["4.0","3.2","3.1","3.0","2.6","2.5","2.4","2.3","2.2","2.1","2.0","1.1","1.0","0.1"],"errorMessage":"Unsupported \"specVersion\"\nYour UI5 CLI installation might be outdated.\nSupported specification versions: \"4.0\", \"3.2\", \"3.1\", \"3.0\", \"2.6\", \"2.5\", \"2.4\", \"2.3\", \"2.2\", \"2.1\", \"2.0\", \"1.1\", \"1.0\", \"0.1\"\nFor details, see: https://sap.github.io/ui5-tooling/pages/Configuration/#specification-versions"}},"if":{"properties":{"specVersion":{"enum":["4.0","3.2","3.1","3.0","2.6","2.5","2.4","2.3","2.2","2.1","2.0"]}}},"then":{"type":"object","required":["specVersion"],"properties":{"specVersion":{"enum":["4.0","3.2","3.1","3.0","2.6","2.5","2.4","2.3","2.2","2.1","2.0"]},"kind":{"enum":["project","extension",null]}},"if":{"properties":{"kind":{"enum":["project",null]}}},"then":{"type":"object","required":["specVersion","type"],"properties":{"specVersion":{"enum":["4.0","3.2","3.1","3.0","2.6","2.5","2.4","2.3","2.2","2.1","2.0"]},"kind":{"enum":["project",null]},"type":{"enum":["application","library","theme-library","module"]}},"if":{"properties":{"type":{"const":null}}},"then":{},"else":{"if":{"properties":{"type":{"const":"application"}}},"then":{"type":"object","required":["specVersion","type","metadata"],"if":{"properties":{"specVersion":{"enum":["4.0"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["4.0"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder-specVersion-4.0"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["3.2"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.2"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder-specVersion-3.2"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["3.0","3.1"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.0","3.1"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder-specVersion-3.0"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.6"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.6"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder-specVersion-2.6"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.5"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.5"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder-specVersion-2.5"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.4"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.4"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder-specVersion-2.4"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.3"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.3"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder-specVersion-2.3"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.1","2.2"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.1","2.2"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.0"]},"kind":{"enum":["project",null]},"type":{"enum":["application"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/then/definitions/builder"},"server":{"$ref":"#/then/then/definitions/server"}}}}}}}}}},"definitions":{"resources":{"type":"object","additionalProperties":false,"properties":{"configuration":{"type":"object","additionalProperties":false,"properties":{"propertiesFileSourceEncoding":{"$ref":"#/then/then/definitions/resources-configuration-propertiesFileSourceEncoding"},"paths":{"type":"object","additionalProperties":false,"properties":{"webapp":{"type":"string"}}}}}}},"builder":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"cachebuster":{"type":"object","additionalProperties":false,"properties":{"signatureType":{"enum":["time","hash"]}}},"bundles":{"$ref":"#/then/then/definitions/builder-bundles"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"}}},"builder-specVersion-2.3":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"cachebuster":{"type":"object","additionalProperties":false,"properties":{"signatureType":{"enum":["time","hash"]}}},"bundles":{"$ref":"#/then/then/definitions/builder-bundles"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"}}},"builder-specVersion-2.4":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"cachebuster":{"type":"object","additionalProperties":false,"properties":{"signatureType":{"enum":["time","hash"]}}},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-2.4"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"}}},"builder-specVersion-2.5":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"cachebuster":{"type":"object","additionalProperties":false,"properties":{"signatureType":{"enum":["time","hash"]}}},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-2.4"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-2.6":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"cachebuster":{"type":"object","additionalProperties":false,"properties":{"signatureType":{"enum":["time","hash"]}}},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-2.4"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"minification":{"$ref":"#/then/then/definitions/builder-minification"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-3.0":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"cachebuster":{"type":"object","additionalProperties":false,"properties":{"signatureType":{"enum":["time","hash"]}}},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-3.0"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"minification":{"$ref":"#/then/then/definitions/builder-minification"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-3.2":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"cachebuster":{"type":"object","additionalProperties":false,"properties":{"signatureType":{"enum":["time","hash"]}}},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-3.2"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"minification":{"$ref":"#/then/then/definitions/builder-minification"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-4.0":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"cachebuster":{"type":"object","additionalProperties":false,"properties":{"signatureType":{"enum":["time","hash"]}}},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-4.0"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"minification":{"$ref":"#/then/then/definitions/builder-minification"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}}}},"else":{"if":{"properties":{"type":{"const":"library"}}},"then":{"type":"object","required":["specVersion","type","metadata"],"if":{"properties":{"specVersion":{"enum":["4.0"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["4.0"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder-specVersion-4.0"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["3.2"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.2"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder-specVersion-3.2"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["3.0","3.1"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.0","3.1"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder-specVersion-3.0"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.6"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.6"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder-specVersion-2.6"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.5"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.5"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder-specVersion-2.5"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.4"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.4"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder-specVersion-2.4"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.3"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.3"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder-specVersion-2.3"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.1","2.2"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.1","2.2"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.0"]},"kind":{"enum":["project",null]},"type":{"enum":["library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/then/definitions/builder"},"server":{"$ref":"#/then/then/definitions/server"}}}}}}}}}},"definitions":{"resources":{"type":"object","additionalProperties":false,"properties":{"configuration":{"type":"object","additionalProperties":false,"properties":{"propertiesFileSourceEncoding":{"$ref":"#/then/then/definitions/resources-configuration-propertiesFileSourceEncoding"},"paths":{"type":"object","additionalProperties":false,"properties":{"src":{"type":"string"},"test":{"type":"string"}}}}}}},"builder-jsdoc":{"type":"object","additionalProperties":false,"properties":{"excludes":{"type":"array","items":{"type":"string"}}}},"builder":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"jsdoc":{"$ref":"#/then/then/else/else/then/definitions/builder-jsdoc"},"bundles":{"$ref":"#/then/then/definitions/builder-bundles"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"}}},"builder-specVersion-2.3":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"jsdoc":{"$ref":"#/then/then/else/else/then/definitions/builder-jsdoc"},"bundles":{"$ref":"#/then/then/definitions/builder-bundles"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"libraryPreload":{"$ref":"#/then/then/definitions/builder-libraryPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"}}},"builder-specVersion-2.4":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"jsdoc":{"$ref":"#/then/then/else/else/then/definitions/builder-jsdoc"},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-2.4"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"libraryPreload":{"$ref":"#/then/then/definitions/builder-libraryPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"}}},"builder-specVersion-2.5":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"jsdoc":{"$ref":"#/then/then/else/else/then/definitions/builder-jsdoc"},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-2.4"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"libraryPreload":{"$ref":"#/then/then/definitions/builder-libraryPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-2.6":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"jsdoc":{"$ref":"#/then/then/else/else/then/definitions/builder-jsdoc"},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-2.4"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"libraryPreload":{"$ref":"#/then/then/definitions/builder-libraryPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"minification":{"$ref":"#/then/then/definitions/builder-minification"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-3.0":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"jsdoc":{"$ref":"#/then/then/else/else/then/definitions/builder-jsdoc"},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-3.0"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"libraryPreload":{"$ref":"#/then/then/definitions/builder-libraryPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"minification":{"$ref":"#/then/then/definitions/builder-minification"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-3.2":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"jsdoc":{"$ref":"#/then/then/else/else/then/definitions/builder-jsdoc"},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-3.2"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"libraryPreload":{"$ref":"#/then/then/definitions/builder-libraryPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"minification":{"$ref":"#/then/then/definitions/builder-minification"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-4.0":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"jsdoc":{"$ref":"#/then/then/else/else/then/definitions/builder-jsdoc"},"bundles":{"$ref":"#/then/then/definitions/builder-bundles-4.0"},"componentPreload":{"$ref":"#/then/then/definitions/builder-componentPreload-specVersion-2.3"},"libraryPreload":{"$ref":"#/then/then/definitions/builder-libraryPreload"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"minification":{"$ref":"#/then/then/definitions/builder-minification"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}}}},"else":{"if":{"properties":{"type":{"const":"theme-library"}}},"then":{"type":"object","required":["specVersion","type","metadata"],"if":{"properties":{"specVersion":{"enum":["3.0","3.1","3.2","4.0"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.0","3.1","3.2","4.0"]},"kind":{"enum":["project",null]},"type":{"enum":["theme-library"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/else/then/definitions/builder-specVersion-2.5"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.5","2.6"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.5","2.6"]},"kind":{"enum":["project",null]},"type":{"enum":["theme-library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/else/then/definitions/builder-specVersion-2.5"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4"]},"kind":{"enum":["project",null]},"type":{"enum":["theme-library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/else/then/definitions/builder"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.0"]},"kind":{"enum":["project",null]},"type":{"enum":["theme-library"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"framework":{"$ref":"#/then/then/definitions/framework"},"resources":{"$ref":"#/then/then/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/else/then/definitions/builder"},"server":{"$ref":"#/then/then/definitions/server"}}}}},"definitions":{"builder":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"}}},"builder-specVersion-2.5":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"customTasks":{"$ref":"#/then/then/definitions/customTasks"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}}}},"else":{"if":{"properties":{"type":{"const":"module"}}},"then":{"type":"object","required":["specVersion","type","metadata"],"if":{"properties":{"specVersion":{"enum":["3.1","3.2","4.0"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.1","3.2","4.0"]},"kind":{"enum":["project",null]},"type":{"enum":["module"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"resources":{"$ref":"#/then/then/else/else/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/else/else/then/definitions/builder-specVersion-3.1"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["3.0"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.0"]},"kind":{"enum":["project",null]},"type":{"enum":["module"]},"metadata":{"$ref":"#/then/then/definitions/metadata-3.0"},"resources":{"$ref":"#/then/then/else/else/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/else/else/then/definitions/builder-specVersion-2.5"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.5","2.6"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.5","2.6"]},"kind":{"enum":["project",null]},"type":{"enum":["module"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"resources":{"$ref":"#/then/then/else/else/else/else/then/definitions/resources"},"builder":{"$ref":"#/then/then/else/else/else/else/then/definitions/builder-specVersion-2.5"},"server":{"$ref":"#/then/then/definitions/server"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4"]},"kind":{"enum":["project",null]},"type":{"enum":["module"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"resources":{"$ref":"#/then/then/else/else/else/else/then/definitions/resources"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.0"]},"kind":{"enum":["project",null]},"type":{"enum":["module"]},"metadata":{"$ref":"#/then/then/definitions/metadata"},"resources":{"$ref":"#/then/then/else/else/else/else/then/definitions/resources"}}}}}},"definitions":{"resources":{"type":"object","additionalProperties":false,"properties":{"configuration":{"type":"object","additionalProperties":false,"properties":{"paths":{"type":"object","additionalProperties":false,"patternProperties":{".+":{"type":"string"}}}}}}},"builder-specVersion-2.5":{"type":"object","additionalProperties":false,"properties":{"settings":{"$ref":"#/then/then/definitions/builder-settings"}}},"builder-specVersion-3.1":{"type":"object","additionalProperties":false,"properties":{"resources":{"$ref":"#/then/then/definitions/builder-resources"},"settings":{"$ref":"#/then/then/definitions/builder-settings"}}}}}}}}},"definitions":{"metadata":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string"},"copyright":{"type":"string"},"deprecated":{"type":"boolean","default":false},"sapInternal":{"type":"boolean","default":false},"allowSapInternal":{"type":"boolean","default":false}}},"metadata-3.0":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":3,"maxLength":80,"pattern":"^(?:@[0-9a-z-_.]+\\/)?[a-z][0-9a-z-_.]*$","title":"Project Name","description":"Unique identifier for the project, for example: organization.product.project","errorMessage":"Not a valid project name. It must consist of lowercase alphanumeric characters, dash, underscore, and period only. Additionally, it may contain an npm-style package scope. For details, see: https://sap.github.io/ui5-tooling/stable/pages/Configuration/#name"},"copyright":{"type":"string"},"deprecated":{"type":"boolean","default":false},"sapInternal":{"type":"boolean","default":false},"allowSapInternal":{"type":"boolean","default":false}}},"resources-configuration-propertiesFileSourceEncoding":{"enum":["UTF-8","ISO-8859-1"],"default":"UTF-8","title":"Encoding of *.properties files","description":"By default, the UI5 Tooling expects *.properties files to be UTF-8 encoded."},"builder-resources":{"type":"object","additionalProperties":false,"properties":{"excludes":{"type":"array","items":{"type":"string"}}}},"builder-bundles":{"type":"array","additionalProperties":false,"items":{"type":"object","additionalProperties":false,"properties":{"bundleDefinition":{"$ref":"#/then/then/definitions/builder-bundles-bundleDefinition"},"bundleOptions":{"$ref":"#/then/then/definitions/builder-bundles-bundleOptions"}}}},"builder-bundles-2.4":{"type":"array","additionalProperties":false,"items":{"type":"object","additionalProperties":false,"properties":{"bundleDefinition":{"$ref":"#/then/then/definitions/builder-bundles-bundleDefinition-2.4"},"bundleOptions":{"$ref":"#/then/then/definitions/builder-bundles-bundleOptions"}}}},"builder-bundles-3.0":{"type":"array","additionalProperties":false,"items":{"type":"object","additionalProperties":false,"properties":{"bundleDefinition":{"$ref":"#/then/then/definitions/builder-bundles-bundleDefinition-2.4"},"bundleOptions":{"$ref":"#/then/then/definitions/builder-bundles-bundleOptions-3.0"}}}},"builder-bundles-3.2":{"type":"array","additionalProperties":false,"items":{"type":"object","additionalProperties":false,"properties":{"bundleDefinition":{"$ref":"#/then/then/definitions/builder-bundles-bundleDefinition-3.2"},"bundleOptions":{"$ref":"#/then/then/definitions/builder-bundles-bundleOptions-3.0"}}}},"builder-bundles-4.0":{"type":"array","additionalProperties":false,"items":{"type":"object","additionalProperties":false,"properties":{"bundleDefinition":{"$ref":"#/then/then/definitions/builder-bundles-bundleDefinition-4.0"},"bundleOptions":{"$ref":"#/then/then/definitions/builder-bundles-bundleOptions-4.0"}}}},"builder-bundles-bundleDefinition":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string"},"defaultFileTypes":{"type":"array","items":{"type":"string"}},"sections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["mode","filters"],"properties":{"name":{"type":"string"},"mode":{"enum":["raw","preload","require","provided"]},"filters":{"type":"array","items":{"type":"string"}},"resolve":{"type":"boolean","default":false},"resolveConditional":{"type":"boolean","default":false},"renderer":{"type":"boolean","default":false},"sort":{"type":"boolean","default":true},"declareRawModules":{"type":"boolean","default":false}}}}}},"builder-bundles-bundleDefinition-2.4":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string"},"defaultFileTypes":{"type":"array","items":{"type":"string"}},"sections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["mode","filters"],"properties":{"name":{"type":"string"},"mode":{"enum":["raw","preload","require","provided","bundleInfo"]},"filters":{"type":"array","items":{"type":"string"}},"resolve":{"type":"boolean","default":false},"resolveConditional":{"type":"boolean","default":false},"renderer":{"type":"boolean","default":false},"sort":{"type":"boolean","default":true},"declareRawModules":{"type":"boolean","default":false}}}}}},"builder-bundles-bundleDefinition-3.2":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string"},"defaultFileTypes":{"type":"array","items":{"type":"string"}},"sections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["mode","filters"],"properties":{"name":{"type":"string"},"mode":{"enum":["raw","preload","require","provided","bundleInfo","depCache"]},"filters":{"type":"array","items":{"type":"string"}},"resolve":{"type":"boolean","default":false},"resolveConditional":{"type":"boolean","default":false},"renderer":{"type":"boolean","default":false},"sort":{"type":"boolean","default":true},"declareRawModules":{"type":"boolean","default":false}}}}}},"builder-bundles-bundleDefinition-4.0":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string"},"defaultFileTypes":{"type":"array","items":{"type":"string"}},"sections":{"type":"array","items":{"if":{"properties":{"mode":{"const":"require"}}},"then":{"type":"object","additionalProperties":false,"required":["mode","filters"],"properties":{"name":{"type":"string"},"mode":{"enum":["require"]},"filters":{"type":"array","items":{"type":"string"}},"resolve":{"type":"boolean","default":false},"resolveConditional":{"type":"boolean","default":false},"renderer":{"type":"boolean","default":false},"sort":{"type":"boolean","default":true},"declareRawModules":{"type":"boolean","default":false},"async":{"type":"boolean","default":true}}},"else":{"type":"object","additionalProperties":false,"required":["mode","filters"],"properties":{"name":{"type":"string"},"mode":{"enum":["raw","preload","require","provided","bundleInfo","depCache"]},"filters":{"type":"array","items":{"type":"string"}},"resolve":{"type":"boolean","default":false},"resolveConditional":{"type":"boolean","default":false},"renderer":{"type":"boolean","default":false},"sort":{"type":"boolean","default":true},"declareRawModules":{"type":"boolean","default":false}}}}}}},"builder-bundles-bundleOptions":{"type":"object","additionalProperties":false,"properties":{"optimize":{"type":"boolean","default":false},"decorateBootstrapModule":{"type":"boolean","default":false},"addTryCatchRestartWrapper":{"type":"boolean","default":false},"usePredefineCalls":{"type":"boolean","default":false},"numberOfParts":{"type":"number","default":1}}},"builder-bundles-bundleOptions-3.0":{"type":"object","additionalProperties":false,"properties":{"optimize":{"type":"boolean","default":true},"decorateBootstrapModule":{"type":"boolean","default":false},"addTryCatchRestartWrapper":{"type":"boolean","default":false},"usePredefineCalls":{"type":"boolean","default":false},"numberOfParts":{"type":"number","default":1},"sourceMap":{"type":"boolean","default":true}}},"builder-bundles-bundleOptions-4.0":{"type":"object","additionalProperties":false,"properties":{"optimize":{"type":"boolean","default":true},"decorateBootstrapModule":{"type":"boolean","default":false},"addTryCatchRestartWrapper":{"type":"boolean","default":false},"numberOfParts":{"type":"number","default":1},"sourceMap":{"type":"boolean","default":true}}},"builder-componentPreload":{"type":"object","additionalProperties":false,"properties":{"paths":{"type":"array","items":{"type":"string"}},"namespaces":{"type":"array","items":{"type":"string"}}}},"builder-componentPreload-specVersion-2.3":{"type":"object","additionalProperties":false,"properties":{"paths":{"type":"array","items":{"type":"string"}},"namespaces":{"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}}}},"builder-libraryPreload":{"type":"object","additionalProperties":false,"properties":{"excludes":{"type":"array","items":{"type":"string"}}}},"server":{"type":"object","additionalProperties":false,"properties":{"settings":{"type":"object","additionalProperties":false,"properties":{"httpPort":{"type":"number"},"httpsPort":{"type":"number"}}},"customMiddleware":{"type":"array","items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["name","beforeMiddleware"],"properties":{"name":{"type":"string"},"mountPath":{"type":"string"},"beforeMiddleware":{"type":"string"},"configuration":{}}},{"type":"object","additionalProperties":false,"required":["name","afterMiddleware"],"properties":{"name":{"type":"string"},"mountPath":{"type":"string"},"afterMiddleware":{"type":"string"},"configuration":{}}}]}}}},"framework":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"enum":["OpenUI5","SAPUI5"]},"version":{"type":"string","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$","title":"Version","description":"Framework version to use in this project","errorMessage":"Not a valid version according to the Semantic Versioning specification (https://semver.org/)"},"libraries":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string"},"optional":{"type":"boolean","default":false},"development":{"type":"boolean","default":false}},"if":{"not":{"anyOf":[{"properties":{"optional":{"enum":[false,null]}}},{"properties":{"development":{"enum":[false,null]}}},{"not":{"properties":{"optional":{"type":"boolean"}}}},{"not":{"properties":{"development":{"type":"boolean"}}}}]}},"then":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"errorMessage":"Either \"development\" or \"optional\" can be true, but not both"}}}}},"customTasks":{"type":"array","items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["name","beforeTask"],"properties":{"name":{"type":"string"},"beforeTask":{"type":"string"},"configuration":{}}},{"type":"object","additionalProperties":false,"required":["name","afterTask"],"properties":{"name":{"type":"string"},"afterTask":{"type":"string"},"configuration":{}}}]}},"builder-settings":{"type":"object","additionalProperties":false,"properties":{"includeDependency":{"type":"array","items":{"type":"string"}},"includeDependencyRegExp":{"type":"array","items":{"type":"string"}},"includeDependencyTree":{"type":"array","items":{"type":"string"}}}},"builder-minification":{"type":"object","additionalProperties":false,"properties":{"excludes":{"type":"array","items":{"type":"string"}}}}}},"else":{"if":{"properties":{"kind":{"enum":["extension"]}}},"then":{"type":"object","required":["specVersion","kind","type","metadata"],"properties":{"specVersion":{"enum":["4.0","3.2","3.1","3.0","2.6","2.5","2.4","2.3","2.2","2.1","2.0"]},"kind":{"enum":["extension"]},"type":{"enum":["task","server-middleware","project-shim"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata"}},"if":{"properties":{"type":{"const":null}}},"then":{},"else":{"if":{"properties":{"type":{"const":"task"}}},"then":{"type":"object","required":["specVersion","kind","type","metadata","task"],"if":{"properties":{"specVersion":{"enum":["3.0","3.1","3.2","4.0"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.0","3.1","3.2","4.0"]},"kind":{"enum":["extension"]},"type":{"enum":["task"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata-3.0"},"task":{"$ref":"#/then/else/then/else/then/definitions/task"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4","2.5","2.6"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4","2.5","2.6"]},"kind":{"enum":["extension"]},"type":{"enum":["task"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata"},"task":{"$ref":"#/then/else/then/else/then/definitions/task"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.0"]},"kind":{"enum":["extension"]},"type":{"enum":["task"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata"},"task":{"$ref":"#/then/else/then/else/then/definitions/task"}}}},"definitions":{"task":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string"}}}}},"else":{"if":{"properties":{"type":{"const":"server-middleware"}}},"then":{"type":"object","required":["specVersion","kind","type","metadata","middleware"],"if":{"properties":{"specVersion":{"enum":["3.0","3.1","3.2","4.0"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.0","3.1","3.2","4.0"]},"kind":{"enum":["extension"]},"type":{"enum":["server-middleware"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata-3.0"},"middleware":{"$ref":"#/then/else/then/else/else/then/definitions/middleware"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4","2.5","2.6"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4","2.5","2.6"]},"kind":{"enum":["extension"]},"type":{"enum":["server-middleware"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata"},"middleware":{"$ref":"#/then/else/then/else/else/then/definitions/middleware"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.0"]},"kind":{"enum":["extension"]},"type":{"enum":["server-middleware"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata"},"middleware":{"$ref":"#/then/else/then/else/else/then/definitions/middleware"}}}},"definitions":{"middleware":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string"}}}}},"else":{"if":{"properties":{"type":{"const":"project-shim"}}},"then":{"type":"object","required":["specVersion","kind","type","metadata","shims"],"if":{"properties":{"specVersion":{"enum":["3.0","3.1","3.2","4.0"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["3.0","3.1","3.2","4.0"]},"kind":{"enum":["extension"]},"type":{"enum":["project-shim"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata-3.0"},"shims":{"$ref":"#/then/else/then/else/else/else/then/definitions/shims"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"if":{"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4","2.5","2.6"]}}},"then":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.1","2.2","2.3","2.4","2.5","2.6"]},"kind":{"enum":["extension"]},"type":{"enum":["project-shim"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata"},"shims":{"$ref":"#/then/else/then/else/else/else/then/definitions/shims"},"customConfiguration":{"type":"object","additionalProperties":true}}},"else":{"additionalProperties":false,"properties":{"specVersion":{"enum":["2.0"]},"kind":{"enum":["extension"]},"type":{"enum":["project-shim"]},"metadata":{"$ref":"#/then/else/then/definitions/metadata"},"shims":{"$ref":"#/then/else/then/else/else/else/then/definitions/shims"}}}},"definitions":{"shims":{"type":"object","additionalProperties":false,"properties":{"configurations":{"type":"object","additionalProperties":false,"patternProperties":{".+":{"type":"object"}}},"dependencies":{"type":"object","additionalProperties":false,"patternProperties":{".+":{"type":"array","items":{"type":"string"}}}},"collections":{"type":"object","additionalProperties":false,"patternProperties":{".+":{"type":"object","additionalProperties":false,"properties":{"modules":{"type":"object","additionalProperties":false,"patternProperties":{".+":{"type":"string"}}}}}}}}}}}}}},"definitions":{"metadata":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string"},"copyright":{"type":"string"}}},"metadata-3.0":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":3,"maxLength":80,"pattern":"^(?:@[0-9a-z-_.]+\\/)?[a-z][0-9a-z-_.]*$","title":"Extension Name","description":"Unique identifier for the extension, for example: ui5-task-fearless-rock","errorMessage":"Not a valid extension name. It must consist of lowercase alphanumeric characters, dash, underscore, and period only. Additionally, it may contain an npm-style package scope. For details, see: https://sap.github.io/ui5-tooling/stable/pages/Configuration/#name"},"copyright":{"type":"string"}}}}}}},"else":{"if":{"properties":{"specVersion":{"enum":["1.1","1.0","0.1"]}}},"then":{"additionalProperties":true}}}
</schema>

[User] Provide a JSON object that satisfies the schema "ui5.yaml". Here are the required top‑level fields: specVersion. Return only the valid JSON object.

ui5.yaml

Schema for UI5 Tooling Configuration File (ui5.yaml)

Unsupported "specVersion"
Your UI5 CLI installation might be outdated.
Supported specification versions: "4.0", "3.2", "3.1", "3.0", "2.6", "2.5", "2.4", "2.3", "2.2", "2.1", "2.0", "1.1", "1.0", "0.1"
For details, see: https://sap.github.io/ui5-tooling/pages/Configuration/#specification-versions

application library theme-library module

Project Name

Unique identifier for the project, for example: organization.product.project

Not a valid project name. It must consist of lowercase alphanumeric characters, dash, underscore, and period only. Additionally, it may contain an npm-style package scope. For details, see: https://sap.github.io/ui5-tooling/stable/pages/Configuration/#name

Encoding of *.properties files

By default, the UI5 Tooling expects *.properties files to be UTF-8 encoded.

raw preload require provided bundleInfo depCache

Version

Framework version to use in this project

Not a valid version according to the Semantic Versioning specification (https://semver.org/)

Either "development" or "optional" can be true, but not both

specVersion kind type metadata middleware

Extension Name

Unique identifier for the extension, for example: ui5-task-fearless-rock

Not a valid extension name. It must consist of lowercase alphanumeric characters, dash, underscore, and period only. Additionally, it may contain an npm-style package scope. For details, see: https://sap.github.io/ui5-tooling/stable/pages/Configuration/#name

Provide a JSON object that satisfies the schema "ui5.yaml". Here are the required top‑level fields: specVersion. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/unist.json","additionalProperties":true,"definitions":{"Point":{"description":"A point represents one place in a source file. The value of the point field implements the Point interface.","markdownDescription":"A point represents one place in a source file. The value of the point field implements the [Point](https://github.com/syntax-tree/unist#point) interface.","type":"object","properties":{"column":{"description":"The column field (1-indexed integer) represents a column in a source file.","type":"integer","minimum":1},"line":{"description":"The line field (1-indexed integer) represents a line in a source file.","type":"integer","minimum":1},"offset":{"description":"The offset field (0-indexed integer) represents a character in a source file.","type":"integer","minimum":0}},"required":["column","line"],"additionalProperties":false},"Position":{"description":"A position represents the location of a node in a source file. The value of the position field implements the Position interface. The position field must not be present if a node is generated.","markdownDescription":"A position represents the location of a node in a source file. The value of the position field implements the [Position](https://github.com/syntax-tree/unist#position) interface. The position field must not be present if a node is generated.","type":"object","properties":{"end":{"$ref":"#/definitions/Point","description":"The end field of Position represents the place of the first character after the parsed source region, whether it exists or not."},"start":{"$ref":"#/definitions/Point","description":"The start field of Position represents the place of the first character of the parsed source region."}},"required":["end","start"],"additionalProperties":false}},"description":"Syntactic units in unist syntax trees are called nodes, and implement the Node interface.","properties":{"type":{"description":"The type field is a non-empty string representing the variant of a node. This field can be used to determine the type a node implements.","markdownDescription":"The [type](https://github.com/syntax-tree/unist#type) field is a non-empty string representing the variant of a node. This field can be used to determine the type a node implements.","type":"string"},"position":{"$ref":"#/definitions/Position"},"children":{"description":"The children field is a list representing the children of a node.","type":"array","items":{"$ref":"#"}},"data":{"description":"The data field represents information from the ecosystem. The value of the data field implements the Data interface.","markdownDescription":"The data field represents information from the ecosystem. The value of the data field implements the [Data](https://github.com/syntax-tree/unist#data) interface.","type":"object","additionalProperties":true},"value":{"description":"The value field can contain any value."}},"required":["type"],"title":"JSON schema for unist syntax trees","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for unist syntax trees". Here are the required top‑level fields: type. Return only the valid JSON object.

A point represents one place in a source file. The value of the point field implements the Point interface.

A point represents one place in a source file. The value of the point field implements the [Point](https://github.com/syntax-tree/unist#point) interface.

The column field (1-indexed integer) represents a column in a source file.

The line field (1-indexed integer) represents a line in a source file.

The offset field (0-indexed integer) represents a character in a source file.

A position represents the location of a node in a source file. The value of the position field implements the Position interface. The position field must not be present if a node is generated.

A position represents the location of a node in a source file. The value of the position field implements the [Position](https://github.com/syntax-tree/unist#position) interface. The position field must not be present if a node is generated.

The end field of Position represents the place of the first character after the parsed source region, whether it exists or not.

The start field of Position represents the place of the first character of the parsed source region.

Syntactic units in unist syntax trees are called nodes, and implement the Node interface.

The type field is a non-empty string representing the variant of a node. This field can be used to determine the type a node implements.

The [type](https://github.com/syntax-tree/unist#type) field is a non-empty string representing the variant of a node. This field can be used to determine the type a node implements.

The children field is a list representing the children of a node.

The data field represents information from the ecosystem. The value of the data field implements the Data interface.

The data field represents information from the ecosystem. The value of the data field implements the [Data](https://github.com/syntax-tree/unist#data) interface.

The value field can contain any value.

JSON schema for unist syntax trees

Provide a JSON object that satisfies the schema "JSON schema for unist syntax trees". Here are the required top‑level fields: type. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/up.json","properties":{"name":{"type":"string","title":"Name of the project.","description":"A machine-friendly project name.","examples":["apex-site","apex-api","ping-app"]},"description":{"type":"string","title":"Description of the project.","description":"An optional project description.","examples":["Marketing site","Public API"]},"type":{"type":"string","title":"Type of project.","description":"The type of project.","default":"server","enum":["static","server"],"examples":["static"]},"profile":{"type":"string","title":"AWS profile.","description":"AWS credentials profile name, these are stored in ~/.aws/credentials.","examples":["apex-prod","apex-dev","personal"]},"regions":{"type":"array","description":"List of target AWS regions for deployment.","minItems":1,"items":{"type":"string","title":"AWS Region.","description":"AWS region.","enum":["us-east-2","us-east-1","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","ca-central-1","eu-central-1","eu-west-1","eu-west-2","eu-west-3","sa-east-1"],"examples":["us-west-2","us-*","eu-*","*"]}},"lambda":{"type":"object","properties":{"accelerate":{"type":"boolean","title":"Enables S3 acceleration.","description":"Enable S3 acceleration for faster uploads via the CloudFront CDN.","default":false},"warm":{"type":"boolean","title":"Enables active warming.","description":"Active warming mitigates cold starts when enabled.","default":false},"warm_rate":{"type":"string","title":"Active warming rate.","description":"Active warming sends requests to your application at this interval.","default":"15m","examples":["5m","30m"]},"warm_count":{"type":"integer","title":"Active warming container count.","description":"Number of concurrent containers to warm.","default":"15"},"memory":{"type":"integer","title":"Memory.","description":"Lambda memory size.","default":512,"enum":[128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024,1088,1152,1216,1280,1344,1408,1472,1536,1600,1664,1728,1792,1856,1920,1984,2048,2112,2176,2240,2304,2368,2432,2496,2560,2624,2688,2752,2816,2880,2944,3008]}}},"stages":{"type":"object","properties":{"production":{"type":"object","properties":{"domain":{"type":"string","title":"Domain name.","description":"Domain hostname for the stage.","default":"","examples":["gh-polls.com","api.gh-polls.com"]}}},"staging":{"type":"object","properties":{"domain":{"type":"string","title":"Domain name.","description":"Domain hostname for the stage.","default":"","examples":["stage.gh-polls.com","gh-polls-staging.com"]}}},"development":{"type":"object","properties":{"domain":{"type":"string","title":"Domain name.","description":"Domain hostname for the stage.","default":"","examples":["dev.gh-polls.com"]}}}}},"hooks":{"type":"object","properties":{"build":{"type":"string","title":"Build hook.","description":"Hook command(s) to run."},"clean":{"type":"string","title":"Clean hook.","description":"Hook command(s) to run."},"prebuild":{"type":"string","title":"Prebuild hook.","description":"Hook command(s) to run."},"postbuild":{"type":"string","title":"Postbuild hook.","description":"Hook command(s) to run."},"predeploy":{"type":"string","title":"Predeploy hook.","description":"Hook command(s) to run."},"postdeploy":{"type":"string","title":"Postdeploy hook.","description":"Hook command(s) to run."}}},"static":{"type":"object","properties":{"dir":{"type":"string","title":"Directory path.","description":"Path to directory from which assets are served.","default":".","examples":["public","./dist"]},"prefix":{"type":"string","title":"URL prefix.","description":"Optional URL path prefix.","examples":["/public/","/static/"]}}},"proxy":{"type":"object","properties":{"command":{"type":"string","title":"Command.","description":"Command run to start your application.","default":"./server","examples":["node app.js"]},"timeout":{"type":"integer","title":"Request timeout.","description":"Timeout in seconds per request.","default":15},"listen_timeout":{"type":"integer","title":"Listen timeout.","description":"Timeout in seconds Up will wait for your app to boot and listen on `PORT`.","default":15},"shutdown_timeout":{"type":"integer","title":"Shutdown timeout.","description":"Timeout in seconds Up will wait after sending a SIGINT to your server, before sending a SIGKILL.","default":15},"backoff":{"type":"object","properties":{"min":{"type":"integer","title":"Minimum delay.","description":"Minimum time in milliseconds before retrying.","default":500},"max":{"type":"integer","title":"Max delay.","description":"Maximum time in milliseconds before retrying.","default":1500},"factor":{"type":"number","title":"Factor.","description":"Factor applied to each attempt.","default":1.5},"attempts":{"type":"integer","title":"Retry attempts.","description":"Attempts made before failing.","default":5},"jitter":{"type":"boolean","title":"Jitter.","description":"Apply jitter.","default":false}}}}},"dns":{"type":"object"},"environment":{"type":"object"},"headers":{"type":"object"},"error_pages":{"type":"object","properties":{"disable":{"type":"boolean","title":"Disable error pages.","description":"Disable default error pages.","default":false},"dir":{"type":"string","title":"Directory path.","description":"Path to directory from which error pages are served.","default":".","examples":["public","./dist"]},"variables":{"type":"object","properties":{"support_email":{"type":"string","title":"Support email.","description":"Support email for contact link.","examples":["support@apex.sh"]},"color":{"type":"string","title":"Color.","description":"Theme color.","examples":["#228ae6"]}}}}},"cors":{"type":"object","properties":{"enable":{"type":"boolean","title":"Enable CORS.","description":"Enable Cross-Origin Resource Sharing.","default":false},"allowed_origins":{"type":"array","items":{"type":"string","title":"Allowed Origins.","description":"A list of origins a cross-domain request can be executed from. Use `*` to allow any origin, or a wildcard such as `http://*.domain.com`.","default":"*","examples":["https://*.myapp.com","https://myapp.com"]}},"allowed_methods":{"type":"array","items":{"type":"string","title":"Allowed Methods.","description":"A list of methods the client is allowed to use with cross-domain requests.","examples":["GET","HEAD"]}},"allowed_headers":{"type":"array","items":{"type":"string","title":"Allowed Headers.","description":"A list of headers the client is allowed to use with cross-domain requests. If the special `*` value is present in the list, all headers will be allowed.","examples":["Content-Type"]}},"exposed_headers":{"type":"array","items":{"type":"string","title":"Exposed Headers.","description":"A list of headers which are safe to expose to the API of a CORS response.","examples":["Content-Type"]}},"max_age":{"type":"integer","title":"Max Age.","description":"A number indicating how long (in seconds) the results of a preflight request can be cached.","default":0},"allowed_credentials":{"type":"boolean","title":"Allow Credentials.","description":"A boolean indicating whether the request can include user credentials such as cookies, HTTP authentication or client side SSL certificates. Defaults to true.","default":true}}},"inject":{"type":"object"},"redirects":{"type":"object"},"actions":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","title":"Action Name.","description":"Name of the action for reference from alert definitions.","examples":["slack","email.backend","text.frontend","text_frontend","email.tj","email tj","Text backend team"]},"type":{"type":"string","title":"Action Type.","description":"Type of action to perform.","examples":["email","sms"]},"emails":{"type":"array","items":{"type":"string","title":"Email addresses.","description":"Email addresses when using the email action.","examples":["tj@apex.sh"]}},"numbers":{"type":"array","items":{"type":"string","title":"Phone numbers.","description":"Phone numbers when using the sms action.","examples":["+12508004123"]}}}}},"alerts":{"type":"array","items":{"type":"object","required":["metric","statistic","threshold","action"],"properties":{"metric":{"type":"string","title":"Metric name.","description":"Name of the metric.","examples":["http.count","http.latency","http.4xx","http.5xx"]},"statistic":{"type":"string","title":"Statistics name.","description":"Name of statistic to perform.","enum":["min","max","avg","sum","count"],"examples":["avg","sum"]},"threshold":{"type":"integer","title":"Value Threshold.","description":"Threshold which is compared to the operator.","default":0},"action":{"type":"string","title":"Action Name.","description":"Name of the action to perform.","examples":["email.backend","sms backend team"]},"period":{"anyOf":[{"type":"integer"},{"type":"string","default":"1m"}],"title":"Period.","description":"Period is the alert query time-span."},"evaluation_periods":{"type":"integer","title":"Evaluation Periods.","description":"Number of periods to evaluate over.","default":1},"operator":{"type":"string","title":"Operator.","description":"Operator is the comparison operator.","default":">","enum":[">","<",">=","<="]},"namespace":{"type":"string","title":"Namespace.","description":"Metric namespace.","examples":["AWS/ApiGateway"]},"description":{"type":"string","title":"Description.","description":"Informative alert description, displayed in the email, sms, or slack.","examples":["Huge traffic spike"]},"disable":{"type":"boolean","title":"Disable.","description":"Disable the alert.","default":false}}}}},"required":["name"],"title":"JSON schema for Apex Up configuration files","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Apex Up configuration files". Here are the required top‑level fields: name. Return only the valid JSON object.

Name of the project.

A machine-friendly project name.

Description of the project.

An optional project description.

Type of project.

The type of project.

AWS profile.

AWS credentials profile name, these are stored in ~/.aws/credentials.

List of target AWS regions for deployment.

AWS Region.

AWS region.

Enables S3 acceleration.

Enable S3 acceleration for faster uploads via the CloudFront CDN.

Enables active warming.

Active warming mitigates cold starts when enabled.

Active warming rate.

Active warming sends requests to your application at this interval.

Active warming container count.

Number of concurrent containers to warm.

Memory.

Lambda memory size.

Domain name.

Domain hostname for the stage.

Domain name.

Domain hostname for the stage.

Domain name.

Domain hostname for the stage.

Build hook.

Hook command(s) to run.

Clean hook.

Hook command(s) to run.

Prebuild hook.

Hook command(s) to run.

Postbuild hook.

Hook command(s) to run.

Predeploy hook.

Hook command(s) to run.

Postdeploy hook.

Hook command(s) to run.

Directory path.

Path to directory from which assets are served.

URL prefix.

Optional URL path prefix.

Command.

Command run to start your application.

Request timeout.

Timeout in seconds per request.

Listen timeout.

Timeout in seconds Up will wait for your app to boot and listen on `PORT`.

Shutdown timeout.

Timeout in seconds Up will wait after sending a SIGINT to your server, before sending a SIGKILL.

Minimum delay.

Minimum time in milliseconds before retrying.

Max delay.

Maximum time in milliseconds before retrying.

Factor.

Factor applied to each attempt.

Retry attempts.

Attempts made before failing.

Jitter.

Apply jitter.

Disable error pages.

Disable default error pages.

Directory path.

Path to directory from which error pages are served.

Support email.

Support email for contact link.

Color.

Theme color.

Enable CORS.

Enable Cross-Origin Resource Sharing.

Allowed Origins.

A list of origins a cross-domain request can be executed from. Use `*` to allow any origin, or a wildcard such as `http://*.domain.com`.

Allowed Methods.

A list of methods the client is allowed to use with cross-domain requests.

Allowed Headers.

A list of headers the client is allowed to use with cross-domain requests. If the special `*` value is present in the list, all headers will be allowed.

Exposed Headers.

A list of headers which are safe to expose to the API of a CORS response.

Max Age.

A number indicating how long (in seconds) the results of a preflight request can be cached.

Allow Credentials.

A boolean indicating whether the request can include user credentials such as cookies, HTTP authentication or client side SSL certificates. Defaults to true.

Action Name.

Name of the action for reference from alert definitions.

Action Type.

Type of action to perform.

Email addresses.

Email addresses when using the email action.

Phone numbers.

Phone numbers when using the sms action.

Metric name.

Name of the metric.

Statistics name.

Name of statistic to perform.

Value Threshold.

Threshold which is compared to the operator.

Action Name.

Name of the action to perform.

Period.

Period is the alert query time-span.

Evaluation Periods.

Number of periods to evaluate over.

Operator.

Operator is the comparison operator.

Namespace.

Metric namespace.

Description.

Informative alert description, displayed in the email, sms, or slack.

Disable.

Disable the alert.

Provide a JSON object that satisfies the schema "JSON schema for Apex Up configuration files". Here are the required top‑level fields: name. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":false,"definitions":{"BuildConfiguration":{"description":"Available build configurations. Mirrored from `UnrealTargetConfiguration`.","type":"string","enum":["Unknown","Debug","DebugGame","Development","Shipping","Test"]},"BuildTargetType":{"description":"Enumerates build target types.","type":"string","enum":["Unknown","Game","Server","Client","Editor","Program"]},"ModuleDescriptor":{"description":"Description of a loadable module.","type":"object","properties":{"AdditionalDependencies":{"description":"List of additional dependencies for building this module.","type":"array","uniqueItems":true,"items":{"type":"string"}},"HasExplicitPlatforms":{"description":"When true, an empty PlatformAllowList is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin extensions","type":"boolean","default":false},"LoadingPhase":{"description":"When should the module be loaded during the startup sequence? This is sort of an advanced setting.","type":"string","enum":["EarliestPossible","PostConfigInit","PostSplashScreen","PreEarlyLoadingScreen","PreLoadingScreen","PreDefault","Default","PostDefault","PostEngineInit","None","Max"]},"Name":{"description":"Name of this module","type":"string"},"PlatformAllowList":{"description":"List of allowed platforms","type":"array","uniqueItems":true,"items":{"type":"string"}},"PlatformDenyList":{"description":"List of disallowed platforms","type":"array","uniqueItems":true,"items":{"type":"string"}},"ProgramAllowList":{"description":"List of allowed programs","type":"array","uniqueItems":true,"items":{"type":"string"}},"ProgramDenyList":{"description":"List of disallowed programs","type":"array","uniqueItems":true,"items":{"type":"string"}},"TargetAllowList":{"description":"List of allowed targets","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"TargetConfigurationAllowList":{"description":"List of allowed target configurations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetConfigurationDenyList":{"description":"List of disallowed target configurations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetDenyList":{"description":"List of disallowed targets","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"Type":{"description":"Usage type of module","type":"string","enum":["Runtime","RuntimeNoCommandlet","RuntimeAndProgram","CookedOnly","UncookedOnly","Developer","DeveloperTool","Editor","EditorNoCommandlet","EditorAndProgram","Program","ServerOnly","ClientOnly","ClientOnlyNoCommandlet","Max"]}}},"PluginReferenceDescriptor":{"description":"Descriptor for a plugin reference.","type":"object","properties":{"Enabled":{"description":"Whether it should be enabled by default","type":"boolean","default":true},"HasExplicitPlatforms":{"description":"When true, empty `SupportedTargetPlatforms` and `PlatformAllowList` are interpreted as *no platforms* with the expectation that explicit platforms will be added in plugin platform extensions","type":"boolean","default":false},"Optional":{"description":"Whether this plugin is optional, and the game should silently ignore it not being present","type":"boolean","default":false},"Description":{"description":"Description of the plugin for users that do not have it installed.","type":"string"},"MarketplaceURL":{"description":"URL for this plugin on the marketplace, if the user doesn't have it installed.","type":"string"},"Name":{"description":"Name of the plugin","type":"string"},"PlatformAllowList":{"description":"List of allowed platforms","type":"array","uniqueItems":true,"items":{"type":"string"}},"PlatformDenyList":{"description":"List of disallowed platforms","type":"array","uniqueItems":true,"items":{"type":"string"}},"TargetAllowList":{"description":"List of allowed targets","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"TargetConfigurationAllowList":{"description":"List of allowed target configurations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetConfigurationDenyList":{"description":"List of disallowed target configurations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetDenyList":{"description":"List of disallowed targets","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}}},"required":["Enabled","Name"]}},"description":"Descriptor for plugins. Contains all the information contained within a `.uplugin` file.","id":"https://json.schemastore.org/uplugin.json","properties":{"CanContainContent":{"description":"Can this plugin contain content?","type":"boolean","default":false},"CanContainVerse":{"description":"Can this plugin contain Verse code?","type":"boolean","default":false},"ExplicitlyLoaded":{"description":"When true, this plugin's modules will not be loaded automatically nor will it's content be mounted automatically.","type":"boolean","default":false},"HasExplicitPlatforms":{"description":"When true, an empty SupportedTargetPlatforms is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin platform extensions","type":"boolean","default":false},"Installed":{"description":"Signifies that the plugin was installed on top of the engine","type":"boolean","default":false},"IsBetaVersion":{"description":"Marks the plugin as beta in the UI","type":"boolean","default":false},"IsExperimentalVersion":{"description":"Marks the plugin as experimental in the UI","type":"boolean","default":false},"IsHidden":{"description":"For auto-generated plugins that should not be listed in the plugin browser for users to disable freely.","type":"boolean","default":false},"bIsPluginExtension":{"description":"If true, this plugin from a platform extension extending another plugin","type":"boolean","default":false},"RequiresBuildPlatform":{"description":"For plugins that are under a platform folder (eg. /PS4/), determines whether compiling the plugin requires the build platform and/or SDK to be available","type":"boolean","default":false},"Category":{"description":"The name of the category this plugin","type":"string","default":"Other"},"CreatedBy":{"description":"The company or individual who created this plugin.","type":"string"},"CreatedByURL":{"description":"Hyperlink URL string for the company or individual who created this plugin. This is optional.","type":"string"},"Description":{"description":"Description of the plugin","type":"string"},"DocsURL":{"description":"Documentation URL string.","type":"string"},"EditorCustomVirtualPath":{"description":"Optional custom virtual path to display in editor to better organize.","type":"string"},"EnabledByDefault":{"description":"Whether this plugin should be enabled by default for all projects","type":"boolean","default":false},"EngineVersion":{"description":"Version of the engine that this plugin is compatible with","type":"string"},"FileVersion":{"description":"Descriptor version number.","type":"number","default":3},"FriendlyName":{"description":"Friendly name of the plugin","type":"string"},"LocalizationTargets":{"description":"List of all localization targets associated with this plugin","type":"array","uniqueItems":true,"items":{"type":"object","required":["LoadingPolicy","Name"],"properties":{"LoadingPolicy":{"description":"When should the localization data associated with a target should be loaded?","type":"string","enum":["Never","Always","Editor","Game","PropertyNames","ToolTips","Max"]},"Name":{"description":"Name of this target","type":"string"}}}},"MarketplaceURL":{"description":"Marketplace URL for this plugin.","type":"string"},"Modules":{"description":"List of all modules associated with this plugin","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/ModuleDescriptor"}},"ParentPluginName":{"description":"If specified, this is the real plugin that this one is just extending","type":"string"},"Plugins":{"description":"Plugins used by this plugin","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/PluginReferenceDescriptor"}},"PostBuildSteps":{"$comment":"Define platform as key, command as value.","description":"Post-build steps for each host platform","type":"object"},"PreBuildSteps":{"$comment":"Define platform as key, command as value.","description":"Pre-build steps for each host platform","type":"object"},"SupportedPrograms":{"description":"List of programs that are supported by this plugin.","type":"array","uniqueItems":true,"items":{"type":"string"}},"SupportedTargetPlatforms":{"description":"Controls a subset of platforms that can use this plugin, and which ones will stage the `.uplugin` file and content files.","type":"array","uniqueItems":true,"items":{"type":"string"}},"SupportURL":{"description":"Support URL/email for this plugin.","type":"string"},"Version":{"description":"Version number for the plugin.","type":"number","default":1},"VersionName":{"description":"Name of the version for this plugin.","type":"string","default":"1.0"}},"required":["FileVersion"],"title":"JSON schema for Unreal Engine uplugin","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Unreal Engine uplugin". Here are the required top‑level fields: FileVersion. Return only the valid JSON object.

Available build configurations. Mirrored from `UnrealTargetConfiguration`.

Unknown Debug DebugGame Development Shipping Test

Enumerates build target types.

Unknown Game Server Client Editor Program

Description of a loadable module.

List of additional dependencies for building this module.

When true, an empty PlatformAllowList is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin extensions

When should the module be loaded during the startup sequence? This is sort of an advanced setting.

EarliestPossible PostConfigInit PostSplashScreen PreEarlyLoadingScreen PreLoadingScreen PreDefault Default PostDefault PostEngineInit None Max

Name of this module

List of allowed platforms

List of disallowed platforms

List of allowed programs

List of disallowed programs

List of allowed targets

List of allowed target configurations

List of disallowed target configurations

List of disallowed targets

Usage type of module

Runtime RuntimeNoCommandlet RuntimeAndProgram CookedOnly UncookedOnly Developer DeveloperTool Editor EditorNoCommandlet EditorAndProgram Program ServerOnly ClientOnly ClientOnlyNoCommandlet Max

Descriptor for a plugin reference.

Whether it should be enabled by default

When true, empty `SupportedTargetPlatforms` and `PlatformAllowList` are interpreted as *no platforms* with the expectation that explicit platforms will be added in plugin platform extensions

Whether this plugin is optional, and the game should silently ignore it not being present

Description of the plugin for users that do not have it installed.

URL for this plugin on the marketplace, if the user doesn't have it installed.

Name of the plugin

List of allowed platforms

List of disallowed platforms

List of allowed targets

List of allowed target configurations

List of disallowed targets

Descriptor for plugins. Contains all the information contained within a `.uplugin` file.

Can this plugin contain content?

Can this plugin contain Verse code?

When true, this plugin's modules will not be loaded automatically nor will it's content be mounted automatically.

When true, an empty SupportedTargetPlatforms is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin platform extensions

Signifies that the plugin was installed on top of the engine

Marks the plugin as beta in the UI

Marks the plugin as experimental in the UI

For auto-generated plugins that should not be listed in the plugin browser for users to disable freely.

If true, this plugin from a platform extension extending another plugin

For plugins that are under a platform folder (eg. /PS4/), determines whether compiling the plugin requires the build platform and/or SDK to be available

The name of the category this plugin

The company or individual who created this plugin.

Hyperlink URL string for the company or individual who created this plugin. This is optional.

Description of the plugin

Documentation URL string.

Optional custom virtual path to display in editor to better organize.

Whether this plugin should be enabled by default for all projects

Version of the engine that this plugin is compatible with

Descriptor version number.

Friendly name of the plugin

List of all localization targets associated with this plugin

When should the localization data associated with a target should be loaded?

Never Always Editor Game PropertyNames ToolTips Max

Name of this target

Marketplace URL for this plugin.

List of all modules associated with this plugin

If specified, this is the real plugin that this one is just extending

Plugins used by this plugin

Define platform as key, command as value.

Post-build steps for each host platform

Pre-build steps for each host platform

List of programs that are supported by this plugin.

Controls a subset of platforms that can use this plugin, and which ones will stage the `.uplugin` file and content files.

Support URL/email for this plugin.

Version number for the plugin.

Name of the version for this plugin.

JSON schema for Unreal Engine uplugin

Provide a JSON object that satisfies the schema "JSON schema for Unreal Engine uplugin". Here are the required top‑level fields: FileVersion. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":false,"definitions":{"BuildConfiguration":{"description":"Available build configurations. Mirrored from UnrealTargetConfiguration.","markdownDescription":"Available build configurations. Mirrored from `UnrealTargetConfiguration`.","type":"string","enum":["Unknown","Debug","DebugGame","Development","Shipping","Test"]},"BuildTargetType":{"description":"Enumerates build target types.","type":"string","enum":["Unknown","Game","Server","Client","Editor","Program"]},"ModuleDescriptor":{"description":"Description of a loadable module.","type":"object","properties":{"AdditionalDependencies":{"description":"List of additional dependencies for building this module.","type":"array","items":{"type":"string"}},"HasExplicitPlatforms":{"description":"When true, an empty PlatformAllowList is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin extensions.","markdownDescription":"When true, an empty `PlatformAllowList` is interpreted as **no platforms** with the expectation that explicit platforms will be added in plugin extensions.","type":"boolean","default":false},"LoadingPhase":{"description":"When should the module be loaded during the startup sequence? This is sort of an advanced setting.","type":"string","enum":["EarliestPossible","PostConfigInit","PostSplashScreen","PreEarlyLoadingScreen","PreLoadingScreen","PreDefault","Default","PostDefault","PostEngineInit","None","Max"]},"Name":{"description":"Name of this module.","type":"string"},"PlatformAllowList":{"description":"List of allowed platforms.","type":"array","uniqueItems":true,"items":{"type":"string"}},"PlatformDenyList":{"description":"List of disallowed platforms.","type":"array","uniqueItems":true,"items":{"type":"string"}},"ProgramAllowList":{"description":"List of allowed programs.","type":"array","uniqueItems":true,"items":{"type":"string"}},"ProgramDenyList":{"description":"List of disallowed programs.","type":"array","uniqueItems":true,"items":{"type":"string"}},"TargetAllowList":{"description":"List of allowed targets.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"TargetConfigurationAllowList":{"description":"List of allowed target configurations.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetConfigurationDenyList":{"description":"List of disallowed target configurations.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetDenyList":{"description":"List of disallowed targets.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"Type":{"description":"Usage type of module.","type":"string","enum":["Runtime","RuntimeNoCommandlet","RuntimeAndProgram","CookedOnly","UncookedOnly","Developer","DeveloperTool","Editor","EditorNoCommandlet","EditorAndProgram","Program","ServerOnly","ClientOnly","ClientOnlyNoCommandlet","Max"]}}},"PluginReferenceDescriptor":{"description":"Descriptor for a plugin reference.","type":"object","properties":{"Enabled":{"description":"Whether it should be enabled by default.","type":"boolean","default":true},"HasExplicitPlatforms":{"description":"When true, empty SupportedTargetPlatforms and PlatformAllowList are interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin platform extensions.","markdownDescription":"When true, empty `SupportedTargetPlatforms` and `PlatformAllowList` are interpreted as **no platforms** with the expectation that explicit platforms will be added in plugin platform extensions.","type":"boolean","default":false},"Optional":{"description":"Whether this plugin is optional, and the game should silently ignore it not being present.","type":"boolean","default":false},"Description":{"description":"Description of the plugin for users that do not have it installed.","type":"string"},"MarketplaceURL":{"description":"URL for this plugin on the marketplace, if the user doesn't have it installed.","type":"string"},"Name":{"description":"Name of the plugin.","type":"string"},"PlatformAllowList":{"description":"List of allowed platforms.","type":"array","uniqueItems":true,"items":{"type":"string"}},"PlatformDenyList":{"description":"List of disallowed platforms.","type":"array","uniqueItems":true,"items":{"type":"string"}},"TargetAllowList":{"description":"List of allowed targets.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"TargetConfigurationAllowList":{"description":"List of allowed target configurations.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetConfigurationDenyList":{"description":"List of disallowed target configurations.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetDenyList":{"description":"List of disallowed targets.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}}},"required":["Enabled","Name"]}},"description":"Descriptor for projects. Contains all the information contained within a .uproject file.","id":"https://json.schemastore.org/uproject.json","markdownDescription":"Descriptor for projects. Contains all the information contained within a `.uproject` file.","properties":{"AdditionalPluginDirectories":{"$comment":"See https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Projects/FProjectDescriptor/AdditionalPluginDirectories","description":"List of additional directoreis to scan for plugins","type":"array","items":{"type":"string"},"default":[]},"DisableEnginePluginsByDefault":{"description":"Indicates that enabled by default engine plugins should not be enabled unless explicitly enabled by the project or target files.","type":"boolean","default":false},"IsEnterpriseProject":{"description":"Indicates if this project is an Enterprise project.","type":"boolean","default":false},"Category":{"description":"Category to show under the project browser.","type":"string"},"Description":{"description":"Description to show in the project browser.","type":"string"},"EngineAssociation":{"$comment":"See https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Projects/FProjectDescriptor/EngineAssociation","description":"The engine to open this project with. Either <major>.<minor> version (4.27, 5.4, etc), unique Engine identifier, blank for directory-based discovery, or relative path.","type":"string","pattern":"(^([0-9]+)\\.([0-9]+)$)|(^\\{[A-F0-9]{8}(-[A-F0-9]{4}){3}-[A-F0-9]{12}\\}$)|^$|[\\\\/]"},"EpicSampleNameHash":{"description":"A hash that is used to determine if the project was forked from a sample.","type":"number"},"FileVersion":{"$comment":"More details can be found in https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Projects/EProjectDescriptorVersion__Type","description":"Descriptor version number.","markdownDescription":"Descriptor version number. See [EProjectDescriptorVersion::Type](https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Projects/EProjectDescriptorVersion__Type).","type":"number","default":3},"Modules":{"description":"List of all modules associated with this project.","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/ModuleDescriptor"}},"Plugins":{"description":"List of plugins for this project (may be enabled/disabled).","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/PluginReferenceDescriptor"}},"PostBuildSteps":{"$comment":"Define platform as key, command as value.","description":"Custom steps to execute after building targets in this project.","type":"object"},"PreBuildSteps":{"$comment":"Define platform as key, command as value.","description":"Custom steps to execute before building targets in this project.","type":"object"},"TargetPlatforms":{"description":"Array of platforms that this project is targeting.","type":"array","uniqueItems":true,"items":{"type":"string"}}},"required":["EngineAssociation","FileVersion"],"title":"JSON schema for Unreal Engine uproject","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Unreal Engine uproject". Here are the required top‑level fields: EngineAssociation, FileVersion. Return only the valid JSON object.

Available build configurations. Mirrored from UnrealTargetConfiguration.

Available build configurations. Mirrored from `UnrealTargetConfiguration`.

Enumerates build target types.

Description of a loadable module.

List of additional dependencies for building this module.

When true, an empty PlatformAllowList is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin extensions.

When true, an empty `PlatformAllowList` is interpreted as **no platforms** with the expectation that explicit platforms will be added in plugin extensions.

When should the module be loaded during the startup sequence? This is sort of an advanced setting.

Name of this module.

List of allowed platforms.

List of disallowed platforms.

List of allowed programs.

List of disallowed programs.

List of allowed targets.

List of allowed target configurations.

List of disallowed target configurations.

List of disallowed targets.

Usage type of module.

Descriptor for a plugin reference.

Whether it should be enabled by default.

When true, empty SupportedTargetPlatforms and PlatformAllowList are interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin platform extensions.

When true, empty `SupportedTargetPlatforms` and `PlatformAllowList` are interpreted as **no platforms** with the expectation that explicit platforms will be added in plugin platform extensions.

Whether this plugin is optional, and the game should silently ignore it not being present.

Description of the plugin for users that do not have it installed.

URL for this plugin on the marketplace, if the user doesn't have it installed.

Name of the plugin.

List of allowed platforms.

List of disallowed platforms.

List of allowed targets.

List of allowed target configurations.

List of disallowed targets.

Descriptor for projects. Contains all the information contained within a .uproject file.

Descriptor for projects. Contains all the information contained within a `.uproject` file.

List of additional directoreis to scan for plugins

Indicates that enabled by default engine plugins should not be enabled unless explicitly enabled by the project or target files.

Indicates if this project is an Enterprise project.

Category to show under the project browser.

Description to show in the project browser.

The engine to open this project with. Either <major>.<minor> version (4.27, 5.4, etc), unique Engine identifier, blank for directory-based discovery, or relative path.

A hash that is used to determine if the project was forked from a sample.

More details can be found in https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Projects/EProjectDescriptorVersion__Type

Descriptor version number.

List of all modules associated with this project.

List of plugins for this project (may be enabled/disabled).

Custom steps to execute after building targets in this project.

Custom steps to execute before building targets in this project.

Array of platforms that this project is targeting.

JSON schema for Unreal Engine uproject

Provide a JSON object that satisfies the schema "JSON schema for Unreal Engine uproject". Here are the required top‑level fields: EngineAssociation, FileVersion. Return only the valid JSON object.