## Manifest file format ### `id` The `id` of the package. This is used to identify the package in the manifest file. Example: ```json { "id": "hello" } ``` ### `type` The type of the package. This is used to identify the package in the manifest file. Example: ```json { "type": "exe" } ``` **Values:** - `"exe"` - `"lib"` ### `description` The description of the package for the user. Example: ```json { "description": "Hello world" } ``` ### `enabledIf` A list of requirements for the package check against the build props. If the requirement is not met, the package will be disabled. ```json { "enabledIf": { "freestanding": [ false ] } } ``` **Values:** `enableIf` is a map of variable and values: ``` "variable-name": [array of expected value] ``` If `variable-name` is equal to one of the value in the table, then the package will be enabled. ### `requires` Dependencies of the package. The name listed here must be the same as the `id` of the package or member of a provide list. Example: ```json { "requires": [ "libc", "libm" ] } ``` ### `provides` An alias for the package. Example: ```json { "provides": [ "hello" ] } ``` This alias may be used by other package when using `requires`. This is used when you have multiple package implementing the same features, but only one is enabled through `enableIf`. **Value**: - An array of `id`.