[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/container-structure-test.json","$comment":"https://github.com/GoogleContainerTools/container-structure-test","additionalProperties":false,"definitions":{"envVar":{"$id":"#/definitions/envVar","type":"object","additionalProperties":false,"required":["key","value"],"properties":{"key":{"type":"string","description":"The name of the environment variables"},"value":{"type":"string","description":"The value of the environment variable"}}},"label":{"$id":"#/definitions/label","type":"object","additionalProperties":false,"required":["key","value"],"properties":{"key":{"type":"string","description":"The name of the label"},"value":{"type":"string","description":"The value of the label"},"isRegex":{"type":"boolean","description":"Interpreted the value as regex"}}}},"description":"The Container Structure Tests provide a powerful framework to validate the structure of a container image. These tests can be used to check the output of commands in an image, as well as verify metadata and contents of the filesystem","properties":{"schemaVersion":{"type":"string","description":"The schema version of Structure Tests.","default":"2.0.0"},"commandTests":{"type":"array","description":"A list of command tests","items":{"type":"object","required":["name","command"],"properties":{"name":{"type":"string","description":"The name of the test"},"setup":{"type":"array","description":"A list of commands (each with optional flags) to run before the actual command under test.","items":{"type":"array","items":{"type":"string"}}},"teardown":{"type":"array","description":"A list of commands (each with optional flags) to run after the actual command under test.","items":{"type":"array","items":{"type":"string"}}},"envVars":{"type":"array","items":{"$ref":"#/definitions/envVar"}},"command":{"type":"string","description":"The command to run in the test."},"args":{"type":"array","description":"The arguments to pass to the command.","items":{"type":"string"}},"expectedOutput":{"type":"array","description":"List of regexes that should match the stdout from running the command.","minItems":1,"items":{"type":"string"}},"excludedOutput":{"type":"array","description":"List of regexes that should not match the stdout from running the command..","minItems":1,"items":{"type":"string"}},"expectedError":{"type":"array","description":"List of regexes that should match the stderr from running the command.","minItems":1,"items":{"type":"string"}},"excludedError":{"type":"array","description":"List of regexes that should not match the stderr from running the command.","minItems":1,"items":{"type":"string"}},"exitCode":{"type":"integer","description":"Exit code that the command should exit with."}}}},"fileExistenceTests":{"type":"array","description":"File existence tests check to make sure a specific file (or directory) exist within the file system of the image. No contents of the files or directories are checked. These tests can also be used to ensure a file or directory is not present in the file system.","items":{"type":"object","required":["name","path","shouldExist"],"properties":{"name":{"type":"string","description":"The name of the test"},"path":{"type":"string","description":"Path to the file or directory under test","default":"/"},"shouldExist":{"type":"boolean","description":"Whether or not the specified file or directory should exist in the file system","default":true},"permissions":{"type":"string","description":"The expected Unix permission string (e.g. drwxrwxrwx) of the files or directory."},"uid":{"type":"number","description":"The expected Unix user ID of the owner of the file or directory."},"gid":{"type":"number","description":"The expected Unix group ID of the owner of the file or directory."},"isExecutableBy":{"type":"string","description":"Checks if file is executable by a given user. ","enum":["owner","group","any","other"]}}}},"fileContentTests":{"description":"File content tests open a file on the file system and check its contents. These tests assume the specified file is a file, and that it exists","type":"array","items":{"type":"object","required":["name","path"],"properties":{"name":{"type":"string","description":"The name of the test"},"path":{"type":"string","description":"Path to the file under test"},"expectedContents":{"type":"array","description":"List of regexes that should match the contents of the file","minItems":1,"items":{"type":"string"}},"excludedContents":{"type":"array","description":"List of regexes that should not match the contents of the file","minItems":1,"items":{"type":"string"}}}}},"licenseTests":{"description":"License tests check a list of copyright files and makes sure all licenses are allowed at Google. By default it will look at where Debian lists all copyright files, but can also look at an arbitrary list of files.","type":"array","items":{"type":"object","required":["debian"],"properties":{"debian":{"type":"boolean","default":true,"description":"if the image is based on Debian, check where Debian lists all licenses."},"files":{"type":"array","description":"A list of other files to check.","minItems":1,"items":{"type":"string"}}}}},"metadataTest":{"type":"object","properties":{"env":{"type":"array","description":"A list of environment variable key/value pairs that should be set in the container.","minItems":1,"items":{"$ref":"#/definitions/envVar"}},"labels":{"type":"array","description":"A list of image labels key/value pairs that should be set on the container.","minItems":1,"items":{"$ref":"#/definitions/label"}},"entrypoint":{"type":"array","description":"The entrypoint of the container","minItems":1,"items":{"type":"string"}},"cmd":{"type":"array","description":"The CMD specified in the container","minItems":1,"items":{"type":"string"}},"exposedPorts":{"type":"array","description":"The ports exposed in the container.","minItems":1,"items":{"type":"string"}},"unexposedPorts":{"type":"array","description":"The ports NOT exposed in the container.","minItems":1,"items":{"type":"string"}},"volumes":{"type":"array","description":"The volumes exposed in the container.","minItems":1,"items":{"type":"string"}},"unmountedVolumes":{"type":"array","description":"The volumes NOT exposed in the container","minItems":1,"items":{"type":"string"}},"workdir":{"type":"string","description":"The default working directory of the container."}}},"globalEnvVars":{"type":"array","description":"A list of environment variables can optionally be specified as part of the test setup. ","minItems":1,"items":{"$ref":"#/definitions/envVar"}}},"required":["schemaVersion"],"title":"Container Structure Tests","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Container Structure Tests". Here are the required top‑level fields: schemaVersion. Return only the valid JSON object.

The name of the environment variables

The value of the environment variable

The name of the label

The value of the label

Interpreted the value as regex

The Container Structure Tests provide a powerful framework to validate the structure of a container image. These tests can be used to check the output of commands in an image, as well as verify metadata and contents of the filesystem

The schema version of Structure Tests.

A list of command tests

The name of the test

A list of commands (each with optional flags) to run before the actual command under test.

A list of commands (each with optional flags) to run after the actual command under test.

The command to run in the test.

The arguments to pass to the command.

List of regexes that should match the stdout from running the command.

List of regexes that should not match the stdout from running the command..

List of regexes that should match the stderr from running the command.

List of regexes that should not match the stderr from running the command.

Exit code that the command should exit with.

File existence tests check to make sure a specific file (or directory) exist within the file system of the image. No contents of the files or directories are checked. These tests can also be used to ensure a file or directory is not present in the file system.

The name of the test

Path to the file or directory under test

Whether or not the specified file or directory should exist in the file system

The expected Unix permission string (e.g. drwxrwxrwx) of the files or directory.

The expected Unix user ID of the owner of the file or directory.

The expected Unix group ID of the owner of the file or directory.

Checks if file is executable by a given user.

File content tests open a file on the file system and check its contents. These tests assume the specified file is a file, and that it exists

The name of the test

Path to the file under test

List of regexes that should match the contents of the file

List of regexes that should not match the contents of the file

License tests check a list of copyright files and makes sure all licenses are allowed at Google. By default it will look at where Debian lists all copyright files, but can also look at an arbitrary list of files.

if the image is based on Debian, check where Debian lists all licenses.

A list of other files to check.

A list of environment variable key/value pairs that should be set in the container.

A list of image labels key/value pairs that should be set on the container.

The entrypoint of the container

The CMD specified in the container

The ports exposed in the container.

The ports NOT exposed in the container.

The volumes exposed in the container.

The volumes NOT exposed in the container

The default working directory of the container.

A list of environment variables can optionally be specified as part of the test setup.

Container Structure Tests

Provide a JSON object that satisfies the schema "Container Structure Tests". Here are the required top‑level fields: schemaVersion. 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#","title":"K9s context config schema","type":"object","additionalProperties":false,"properties":{"k9s":{"additionalProperties":false,"properties":{"cluster":{"type":"string"},"readOnly":{"type":"boolean"},"skin":{"type":"string"},"proxy":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string"}}}]},"namespace":{"type":"object","additionalProperties":false,"properties":{"active":{"type":"string"},"lockFavorites":{"type":"boolean"},"favorites":{"type":"array","items":{"type":"string"}}}},"view":{"type":"object","additionalProperties":false,"properties":{"active":{"type":"string"}}},"featureGates":{"type":"object","additionalProperties":false,"properties":{"nodeShell":{"type":"boolean"}}}}}},"required":["k9s"]}
</schema>

[User] Provide a JSON object that satisfies the schema "K9s context config schema". Here are the required top‑level fields: k9s. Return only the valid JSON object.

K9s context config schema

Provide a JSON object that satisfies the schema "K9s context config schema". Here are the required top‑level fields: k9s. 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/contextive-glossary.json","additionalProperties":true,"description":"https://docs.contextive.tech/community/guides/setting-up-glossaries/","anyOf":[{"properties":{"imports":{"description":"A list of urls, paths or relative paths to be imported into the current glossary scope. See https://docs.contextive.tech/community/guides/setting-up-glossaries/#terms-defined-in-an-external-data-source.","type":"array","items":{"type":"string"},"minItems":1,"uniqueItems":true}},"required":["imports"]},{"properties":{"contexts":{"description":"A list of contexts. See https://docs.contextive.tech/community/guides/setting-up-glossaries/#bounded-contexts.","type":"array","items":{"title":"Context","description":"A context in the ubiquitous language, consisting of a list of terms.","type":"object","properties":{"name":{"title":"Name","description":"The name of the Context.","type":"string","examples":["The Context's Name"]},"domainVisionStatement":{"title":"Domain Vision Statement","description":"A statement that describes the purpose of the Context.","type":"string","examples":["A statement that describes the purpose of the context."]},"paths":{"title":"Paths","description":"A list of paths that the Context is involved in.","type":"array","items":{"title":"Path","description":"A path that the Context is involved in.","type":"string"},"minItems":1,"uniqueItems":true},"terms":{"title":"Terms","description":"A list of Terms in the Context - see https://docs.contextive.tech/ide/guides/defining-terminology/.","type":"array","items":{"title":"Term","description":"A Term in the Context.","type":"object","properties":{"name":{"title":"Name","description":"The name of the Term.","type":"string","examples":["The Term's Name"]},"definition":{"title":"Definition","description":"A definition of the Term in this Context.","type":"string","examples":["A definition of the Term in this Context."]},"examples":{"title":"Examples","description":"A list of example sentences using the Term.","type":"array","items":{"title":"Example sentence","description":"An example sentence using the Term.","type":"string","examples":["An example sentence using the Term."]},"minItems":1,"uniqueItems":true},"aliases":{"title":"Aliases","description":"A list of aliases for the Term.","type":"array","items":{"title":"Alias","description":"An alias for the Term.","type":"string","examples":["An alias for the Term."]},"minItems":1,"uniqueItems":true}},"required":["name"]},"minItems":1,"uniqueItems":true}},"required":["terms"]},"minItems":1,"uniqueItems":true}},"required":["contexts"]}],"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "contextive-glossary". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

A list of urls, paths or relative paths to be imported into the current glossary scope. See https://docs.contextive.tech/community/guides/setting-up-glossaries/#terms-defined-in-an-external-data-source.

A list of contexts. See https://docs.contextive.tech/community/guides/setting-up-glossaries/#bounded-contexts.

Context

A context in the ubiquitous language, consisting of a list of terms.

Name

The name of the Context.

Domain Vision Statement

A statement that describes the purpose of the Context.

A statement that describes the purpose of the context.

Paths

A list of paths that the Context is involved in.

Path

A path that the Context is involved in.

Terms

A list of Terms in the Context - see https://docs.contextive.tech/ide/guides/defining-terminology/.

Term

A Term in the Context.

Name

The name of the Term.

Definition

A definition of the Term in this Context.

Examples

A list of example sentences using the Term.

Example sentence

An example sentence using the Term.

Aliases

A list of aliases for the Term.

Alias

An alias for the Term.

Provide a JSON object that satisfies the schema "contextive-glossary". Here are the required top‑level fields: none (all optional). 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/convex.json","description":"Configuration for Convex project settings.\n\nDocumentation: https://docs.convex.dev/production/project-configuration#convexjson","type":"object","properties":{"$schema":{"type":"string"},"node":{"type":"object","description":"Configuration for the Convex Node.js runtime, where your actions run that have 'use node' at the top of the file.","properties":{"externalPackages":{"type":["array"],"description":"List of packages that should be installed on the server instead of being bundled by the CLI. Use this for packages that can't be bundled or need to be installed directly on the server.\n\nIf you want to mark all dependencies as external, you can use the string '*' instead of an array.\n\nhttps://docs.convex.dev/functions/bundling#external-packages","items":{"type":"string"},"default":["*"],"oneOf":[{"contains":{"const":"*"},"maxItems":1},{"not":{"contains":{"const":"*"}}}]}}},"generateCommonJSApi":{"type":"boolean","description":"When true, generates CommonJS-compatible API files for projects not using ES modules. Enable this if your project uses require() syntax instead of ES modules.\n\nhttps://docs.convex.dev/client/javascript/node#javascript-with-commonjs-require-syntax","default":false},"functions":{"type":"string","description":"Path to the directory containing Convex functions. You can customize this to use a different location than the default 'convex/' directory.\n\nhttps://docs.convex.dev/production/project-configuration#changing-the-convex-folder-name-or-location","default":"convex/"}},"additionalProperties":false}
</schema>

[User] Provide a JSON object that satisfies the schema "convex". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Configuration for Convex project settings.

Documentation: https://docs.convex.dev/production/project-configuration#convexjson

Configuration for the Convex Node.js runtime, where your actions run that have 'use node' at the top of the file.

List of packages that should be installed on the server instead of being bundled by the CLI. Use this for packages that can't be bundled or need to be installed directly on the server.

If you want to mark all dependencies as external, you can use the string '*' instead of an array.

https://docs.convex.dev/functions/bundling#external-packages

When true, generates CommonJS-compatible API files for projects not using ES modules. Enable this if your project uses require() syntax instead of ES modules.

https://docs.convex.dev/client/javascript/node#javascript-with-commonjs-require-syntax

Path to the directory containing Convex functions. You can customize this to use a different location than the default 'convex/' directory.

https://docs.convex.dev/production/project-configuration#changing-the-convex-folder-name-or-location

Provide a JSON object that satisfies the schema "convex". Here are the required top‑level fields: none (all optional). 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,"id":"https://json.schemastore.org/cosmos-config.json","properties":{"$schema":{"type":"string"},"rootDir":{"description":"The root directory that all others paths in this config are relative to. Usually the root of your repo. If omitted, rootDir is equal to the directory containing your Cosmos config. When you don't use a Cosmos config, rootDir defaults to the current working directory.","type":"string","minLength":1},"exportPath":{"description":"Where to generate static exports on disk. [default: \"cosmos-export\"]","type":"string","minLength":1},"detectLocalPlugins":{"description":"Automatically detect and load local plugins","type":"boolean"},"disablePlugins":{"description":"Disable plugins","type":"boolean"},"staticPath":{"description":"Dir path to serve static assets from.","type":"string","minLength":1},"plugins":{"description":"Module IDs of Cosmos plugins (eg. \"react-cosmos-plugin-open-fixture\" or \"../path/to/my-plugin\").","type":"array","items":{"type":"string","minLength":1},"uniqueItems":true},"publicUrl":{"description":"Base URL for static assets. [default: \"/\"]","type":"string"},"fixturesDir":{"description":"Name for directories that contain fixtures (eg. __fixtures__/example.jsx). [default: \"__fixtures__\"]","type":"string","minLength":1},"fixtureFileSuffix":{"description":"Suffix for fixture files (eg. example.fixture.jsx). [default: \"fixture\"]","type":"string","minLength":1},"ignore":{"description":"Patterns for ignoring fixture and decorator files (eg. [\"**/dist/**\"]]).","type":"array","items":{"type":"string","minLength":1},"uniqueItems":true},"watchDirs":{"description":"Directories where the Cosmos server watches for fixture files changes while running. [default: [\".\"]]","type":"array","items":{"type":"string","minLength":1},"uniqueItems":true},"lazy":{"description":"Dynamically import fixture and decorator modules as they are loaded. When false all fixture and decorator modules are imported statically and bundled together. [default: false]","type":"boolean"},"exposeImports":{"description":"Expose user imports and config required for the Cosmos renderer. Used with React Native and in custom integrations. When a path is specified it requires a file extension (eg. \"src/cosmos.imports.ts\"). [default: false]","anyOf":[{"type":"string","minLength":1},{"type":"boolean"}]},"hostname":{"description":"Dev server hostname. Set to null to accept connections with any hostname. [default: null]","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"port":{"description":"Dev server port. [default: 5000]","type":"number"},"portRetries":{"description":"Max number of port retries. [default: 10]","type":"number"},"https":{"description":"Server will be served over HTTPS.","type":"boolean"},"httpsOptions":{"description":"Additional options for HTTPS server.","type":"object","additionalProperties":false,"properties":{"certPath":{"description":"Path of a certificate file","type":"string"},"keyPath":{"description":"Path of a certificate's key file","type":"string"}}},"httpProxy":{"description":"Proxy some URLs to a different HTTP server (eg. an API backend dev server). Similar to devServer.proxy in webpack config.","type":"object","additionalProperties":true,"patternProperties":{".*":{"anyOf":[{"type":"string"},{"type":"object","description":"Advanced HTTP proxy config.","additionalProperties":true,"required":["target"],"properties":{"target":{"type":"string"},"secure":{"type":"boolean"},"pathRewrite":{"type":"object","patternProperties":{".*":{"type":"string"}}},"logLevel":{"type":"string","enum":["error","debug","info","warn","silent"]}}}]}}},"globalImports":{"description":"Modules to be imported before loading components. Stuff like reset.css, polyfills, etc.","type":"array","items":{"type":"string","minLength":1},"uniqueItems":true},"rendererUrl":{"description":"Required when renderer doesn't run on the same port (or host) as the Playground. Useful for integrations with build tools. [default: null]","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"dom":{"description":"DOM-related options","type":"object","properties":{"containerQuerySelector":{"description":"Document selector for existing element to use as component parent (eg. #root). A blank container element is created from scratch if no selector is provided. [default: null]","type":["string","null"],"minLength":1}}},"vite":{"description":"Vite-related options","type":"object","additionalProperties":false,"properties":{"configPath":{"description":"Path to Vite config. Set to false to disable reading it from the default path. [default: \"vite.config.js\"]","anyOf":[{"type":"string","minLength":1},{"enum":[false]}]},"indexPath":{"description":"Path to index module (eg. \"src/my-index.tsx\"). [default: matches common index/main module paths]","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"port":{"description":"Vite renderer port. [default: 5050]","type":"number"}}},"webpack":{"description":"Webpack-related options","type":"object","additionalProperties":false,"properties":{"configPath":{"description":"Path to an existing webpack config, which Cosmos will reuse to build your code. Set to null to disable this behavior. [default: \"webpack.config.js\"]","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"overridePath":{"description":"Path to a user module that customizes the webpack config used by Cosmos. Set to null to disable this behavior. [default: \"webpack.override.js\"]","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"includeHashInOutputFilename":{"description":"Changes output filename from \"[name].js\" to \"[name].[contenthash].js\". [default: false]","type":"boolean"},"hotReload":{"description":"Enable webpack's Hot Module Replacement. [default: true]","type":"boolean"},"reloadOnFail":{"description":"When using webpack's Hot Module Replacement, enable automatic location reload after webpack fails to update modules. [default: false]","type":"boolean"}}},"ui":{"description":"UI plugin options","type":"object","additionalProperties":true,"properties":{"responsivePreview":{"type":"object","additionalProperties":false,"properties":{"devices":{"description":"List of device viewports","type":"array","items":{"type":"object","additionalProperties":false,"required":["label","width","height"],"properties":{"label":{"type":"string","minLength":1},"width":{"type":"number","minimum":1},"height":{"type":"number","minimum":1}}}}}}}}},"title":"JSON schema for React Cosmos configs","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for React Cosmos configs". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

The root directory that all others paths in this config are relative to. Usually the root of your repo. If omitted, rootDir is equal to the directory containing your Cosmos config. When you don't use a Cosmos config, rootDir defaults to the current working directory.

Where to generate static exports on disk. [default: "cosmos-export"]

Automatically detect and load local plugins

Disable plugins

Dir path to serve static assets from.

Module IDs of Cosmos plugins (eg. "react-cosmos-plugin-open-fixture" or "../path/to/my-plugin").

Base URL for static assets. [default: "/"]

Name for directories that contain fixtures (eg. __fixtures__/example.jsx). [default: "__fixtures__"]

Suffix for fixture files (eg. example.fixture.jsx). [default: "fixture"]

Patterns for ignoring fixture and decorator files (eg. ["**/dist/**"]]).

Directories where the Cosmos server watches for fixture files changes while running. [default: ["."]]

Dynamically import fixture and decorator modules as they are loaded. When false all fixture and decorator modules are imported statically and bundled together. [default: false]

Expose user imports and config required for the Cosmos renderer. Used with React Native and in custom integrations. When a path is specified it requires a file extension (eg. "src/cosmos.imports.ts"). [default: false]

Dev server hostname. Set to null to accept connections with any hostname. [default: null]

Dev server port. [default: 5000]

Max number of port retries. [default: 10]

Server will be served over HTTPS.

Additional options for HTTPS server.

Path of a certificate file

Path of a certificate's key file

Proxy some URLs to a different HTTP server (eg. an API backend dev server). Similar to devServer.proxy in webpack config.

Advanced HTTP proxy config.

Modules to be imported before loading components. Stuff like reset.css, polyfills, etc.

Required when renderer doesn't run on the same port (or host) as the Playground. Useful for integrations with build tools. [default: null]

DOM-related options

Document selector for existing element to use as component parent (eg. #root). A blank container element is created from scratch if no selector is provided. [default: null]

Vite-related options

Path to Vite config. Set to false to disable reading it from the default path. [default: "vite.config.js"]

Path to index module (eg. "src/my-index.tsx"). [default: matches common index/main module paths]

Vite renderer port. [default: 5050]

Webpack-related options

Path to an existing webpack config, which Cosmos will reuse to build your code. Set to null to disable this behavior. [default: "webpack.config.js"]

Path to a user module that customizes the webpack config used by Cosmos. Set to null to disable this behavior. [default: "webpack.override.js"]

Changes output filename from "[name].js" to "[name].[contenthash].js". [default: false]

Enable webpack's Hot Module Replacement. [default: true]

When using webpack's Hot Module Replacement, enable automatic location reload after webpack fails to update modules. [default: false]

UI plugin options

List of device viewports

JSON schema for React Cosmos configs

Provide a JSON object that satisfies the schema "JSON schema for React Cosmos configs". Here are the required top‑level fields: none (all optional). 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://cps-org.github.io/cps/cps.schema.json","title":"Common Package Specification v0.13","definitions":{"types":{"string":{"type":"string"},"list(string)":{"type":"array","items":{"$ref":"#/definitions/types/string"}},"map(list(string))":{"type":"object","patternProperties":{"":{"$ref":"#/definitions/types/list(string)"}}},"list(string)|map(list(string))":{"oneOf":[{"$ref":"#/definitions/types/list(string)"},{"$ref":"#/definitions/types/map(list(string))"}]},"map(component)":{"type":"object","patternProperties":{"":{"$ref":"#/definitions/types/component"}}},"map(configuration)":{"type":"object","patternProperties":{"":{"$ref":"#/definitions/types/configuration"}}},"string|null":{"oneOf":[{"$ref":"#/definitions/types/string"},{"$ref":"#/definitions/types/null"}]},"map(string|null)":{"type":"object","patternProperties":{"":{"$ref":"#/definitions/types/string|null"}}},"map(map(string|null))":{"type":"object","patternProperties":{"":{"$ref":"#/definitions/types/map(string|null)"}}},"map(requirement)":{"type":"object","patternProperties":{"":{"$ref":"#/definitions/types/requirement"}}},"package":{"type":"object","description":"The root of a CPS document is a package object. A package object describes a single package.","properties":{"compat_version":{"$ref":"#/definitions/attributes/compat_version@0"},"components":{"$ref":"#/definitions/attributes/components@0"},"configuration":{"$ref":"#/definitions/attributes/configuration@0"},"configurations":{"$ref":"#/definitions/attributes/configurations@0"},"cps_path":{"$ref":"#/definitions/attributes/cps_path@0"},"cps_version":{"$ref":"#/definitions/attributes/cps_version@0"},"default_components":{"$ref":"#/definitions/attributes/default_components@0"},"name":{"$ref":"#/definitions/attributes/name@0"},"platform":{"$ref":"#/definitions/attributes/platform@0"},"prefix":{"$ref":"#/definitions/attributes/prefix@0"},"requires":{"$ref":"#/definitions/attributes/requires@1"},"version":{"$ref":"#/definitions/attributes/version@0"},"version_schema":{"$ref":"#/definitions/attributes/version_schema@0"},"default_license":{"$ref":"#/definitions/attributes/default_license@0"},"description":{"$ref":"#/definitions/attributes/description@0"},"display_name":{"$ref":"#/definitions/attributes/display_name@0"},"license":{"$ref":"#/definitions/attributes/license@0"},"meta_comment":{"$ref":"#/definitions/attributes/meta_comment@0"},"meta_schema":{"$ref":"#/definitions/attributes/meta_schema@0"},"website":{"$ref":"#/definitions/attributes/website@0"}},"required":["components","cps_version","name"],"additionalProperties":true},"platform":{"type":"object","description":"A platform describes the platform on which a package's components may run.","properties":{"c_runtime_vendor":{"$ref":"#/definitions/attributes/c_runtime_vendor@0"},"c_runtime_version":{"$ref":"#/definitions/attributes/c_runtime_version@0"},"clr_vendor":{"$ref":"#/definitions/attributes/clr_vendor@0"},"clr_version":{"$ref":"#/definitions/attributes/clr_version@0"},"cpp_runtime_vendor":{"$ref":"#/definitions/attributes/cpp_runtime_vendor@0"},"cpp_runtime_version":{"$ref":"#/definitions/attributes/cpp_runtime_version@0"},"isa":{"$ref":"#/definitions/attributes/isa@0"},"jvm_vendor":{"$ref":"#/definitions/attributes/jvm_vendor@0"},"jvm_version":{"$ref":"#/definitions/attributes/jvm_version@0"},"kernel":{"$ref":"#/definitions/attributes/kernel@0"},"kernel_version":{"$ref":"#/definitions/attributes/kernel_version@0"}},"required":[],"additionalProperties":true},"requirement":{"type":"object","description":"A requirement describes the specifics of a package dependency.","properties":{"components":{"$ref":"#/definitions/attributes/components@1"},"hints":{"$ref":"#/definitions/attributes/hints@0"},"version":{"$ref":"#/definitions/attributes/version@1"}},"required":[],"additionalProperties":true},"component":{"type":"object","description":"A component is a consumable part of a package. Typical components include libraries and executables.","properties":{"compile_features":{"$ref":"#/definitions/attributes/compile_features@0"},"compile_flags":{"$ref":"#/definitions/attributes/compile_flags@0"},"configurations":{"$ref":"#/definitions/attributes/configurations@1"},"definitions":{"$ref":"#/definitions/attributes/definitions@0"},"includes":{"$ref":"#/definitions/attributes/includes@0"},"link_features":{"$ref":"#/definitions/attributes/link_features@0"},"link_flags":{"$ref":"#/definitions/attributes/link_flags@0"},"link_languages":{"$ref":"#/definitions/attributes/link_languages@0"},"link_libraries":{"$ref":"#/definitions/attributes/link_libraries@0"},"link_location":{"$ref":"#/definitions/attributes/link_location@0"},"link_requires":{"$ref":"#/definitions/attributes/link_requires@0"},"location":{"$ref":"#/definitions/attributes/location@0"},"requires":{"$ref":"#/definitions/attributes/requires@0"},"type":{"$ref":"#/definitions/attributes/type@0"},"description":{"$ref":"#/definitions/attributes/description@0"},"license":{"$ref":"#/definitions/attributes/license@0"}},"required":["type"],"additionalProperties":true},"configuration":{"type":"object","description":"A configuration holds attributes that are specific to a particular configuration of a component.","properties":{"compile_features":{"$ref":"#/definitions/attributes/compile_features@0"},"compile_flags":{"$ref":"#/definitions/attributes/compile_flags@0"},"definitions":{"$ref":"#/definitions/attributes/definitions@0"},"includes":{"$ref":"#/definitions/attributes/includes@0"},"link_features":{"$ref":"#/definitions/attributes/link_features@0"},"link_flags":{"$ref":"#/definitions/attributes/link_flags@0"},"link_languages":{"$ref":"#/definitions/attributes/link_languages@0"},"link_libraries":{"$ref":"#/definitions/attributes/link_libraries@0"},"link_location":{"$ref":"#/definitions/attributes/link_location@0"},"link_requires":{"$ref":"#/definitions/attributes/link_requires@0"},"location":{"$ref":"#/definitions/attributes/location@0"},"requires":{"$ref":"#/definitions/attributes/requires@0"}},"required":[],"additionalProperties":true}},"attributes":{"c_runtime_vendor@0":{"description":"Specifies that the package's CABI components require the specified C standard/runtime library. Typical (case-insensitive) values include \"bsd\" (libc), \"gnu\" (glibc), \"mingw\" and \"microsoft\".","$ref":"#/definitions/types/string"},"c_runtime_version@0":{"description":"Specifies the minimum C standard/runtime library version required by the package's CABI components.","$ref":"#/definitions/types/string"},"clr_vendor@0":{"description":"Specifies that the package's CLR (.NET) components require the specified Common Language Runtime vendor. Typical (case-insensitive) values include \"microsoft\" and \"mono\".","$ref":"#/definitions/types/string"},"clr_version@0":{"description":"Specifies the minimum Common Language Runtime version required to use the package's CLR (.NET) components.","$ref":"#/definitions/types/string"},"compat_version@0":{"description":"Specifies the oldest version of the package with which this version is compatible. This information is used when a consumer requests a specific version. If the version requested is equal to or newer than the compat_version, the package may be used.\n\nIf not specified, the package is not compatible with previous versions (i.e. compat_version is implicitly equal to version).","$ref":"#/definitions/types/string"},"compile_features@0":{"description":"Specifies a list of Compiler Features that must be enabled or disabled when compiling code that consumes the component.","$ref":"#/definitions/types/list(string)"},"compile_flags@0":{"description":"Specifies a list of additional flags that must be supplied to the compiler when compiling code that consumes the component. Note that compiler flags may not be portable; use of this attribute is discouraged.\n\nA map may be used instead to give different values depending on the language of the consuming source file. Handling of such shall be the same as for definitions.","$ref":"#/definitions/types/list(string)|map(list(string))"},"components@0":{"description":"Specifies the components which the package provides. Keys are the component names.","$ref":"#/definitions/types/map(component)"},"components@1":{"description":"Specifies a list of components which must be present in the required package in order for the requirement to be satisfied. Although the build tool will generally produce an error if a consumer uses a component which in turn requires a component that was not found, early specification via this attribute may help build tools to diagnose such issues earlier and/or produce better diagnostics.\n\nThis may also be used to specify dependencies that are not expressed in component level dependencies, such as a package's requirement that a dependency includes a certain symbolic component, or if a dependency is only expressed at run-time.","$ref":"#/definitions/types/list(string)"},"configuration@0":{"description":"Specifies the name of the configuration described by a configuration-specific .cps (see Configuration Merging). This attribute is required in a configuration-specific .cps, and shall be ignored otherwise.","$ref":"#/definitions/types/string"},"configurations@0":{"description":"Specifies the configurations that are preferred. See Package Configurations for a description of how configurations are used.","$ref":"#/definitions/types/list(string)"},"configurations@1":{"description":"Specifies a set of configuration-specific attributes for a component. Keys are the configuration names.","$ref":"#/definitions/types/map(configuration)"},"cpp_runtime_vendor@0":{"description":"Specifies that the package's CABI components require the specified C++ standard/runtime library. Typical (case-insensitive) values include \"gnu\" (libstdc++), \"llvm\" (libc++) and \"microsoft\".","$ref":"#/definitions/types/string"},"cpp_runtime_version@0":{"description":"Specifies the minimum C++ standard/runtime library version required by the package's CABI components.","$ref":"#/definitions/types/string"},"cps_path@0":{"description":"Specifies the directory portion location of the .cps file. This shall be an \"absolute\" path which starts with @prefix@. This provides a mechanism by which the tool may deduce the prefix of a relocatable package from the absolute location of the .cps file (which will be known by the tool). See also Prefix Determination for details.\n\nExactly one of cps_path or prefix is required.","$ref":"#/definitions/types/string"},"cps_version@0":{"description":"Specifies the version of the CPS to which this .cps file conforms. This may be used by tools to provide backwards compatibility in case of compatibility-breaking changes in the CPS.\n\nCPS version numbering follows semver. That is, tools that support CPS version <X>.<Y> are expected to be able to read files with cps_version <X>.<Z>, even for Z > Y (with the understanding that, in such cases, the tool may miss non-critical information that the CPS provided).","$ref":"#/definitions/types/string"},"default_components@0":{"description":"Specifies a list of components that should be inferred if a consumer specifies a dependency on a package, but not a specific component.","$ref":"#/definitions/types/list(string)"},"definitions@0":{"description":"Specifies a collection of compile definitions that must be defined when compiling code that consumes the component. Each key in the inner map(s) is the name of a compile definition, such that e.g. -Dkey=value is passed to the compiler. A value may be null, indicating a definition with no value (e.g. -Dkey is passed to the compiler). Note that an empty string indicates -Dkey=, which may have a different effect than -Dkey.\n\nThe outer map is used to describe language-specific definitions. The build tool shall include only those definitions whose language matches (case-sensitive) that of the (lower case) language of the source file being compiled. Recognized languages shall include \"c\", \"cpp\", and \"fortran\". Additionally, the value \"*\" indicates that the corresponding definitions apply to all languages.\n\nIf a definition name is repeated in both \"*\" and a specific language, the latter, when applicable to the source being compiled, shall have precedence.","$ref":"#/definitions/types/map(map(string|null))"},"hints@0":{"description":"Specifies a list of paths where a required dependency might be located. When given, this will usually provide the location of the dependency as it was consumed by the package when the package was built, so that consumers can easily find (correct) dependencies if they are in a location that is not searched by default.","$ref":"#/definitions/types/list(string)"},"includes@0":{"description":"Specifies a list of directories which should be added to the include search path when compiling code that consumes the component. If a path starts with @prefix@, the package's prefix is substituted (see Package Searching). This is recommended, as it allows packages to be relocatable.\n\nA map may be used instead to give different values depending on the language of the consuming source file. Handling of such shall be the same as for definitions.","$ref":"#/definitions/types/list(string)|map(list(string))"},"isa@0":{"description":"Specifies that the package's CABI components require the specified Instruction Set Architecture. The value is case insensitive and should follow the output of uname -m.","$ref":"#/definitions/types/string"},"jvm_vendor@0":{"description":"Specifies that the package's Java components require the specified Java vendor. Typical (case-insensitive) values include \"oracle\" and \"openjdk\".","$ref":"#/definitions/types/string"},"jvm_version@0":{"description":"Specifies the minimum Java Virtual Machine version required to use the package's Java components.","$ref":"#/definitions/types/string"},"kernel@0":{"description":"Specifies the name of the operating system kernel required by the package's components. The value is case insensitive and should follow the output of uname -s. Typical values include \"windows\", \"cygwin\", \"linux\" and \"darwin\".","$ref":"#/definitions/types/string"},"kernel_version@0":{"description":"Specifies the minimum operating system kernel version required by the package's components.","$ref":"#/definitions/types/string"},"link_features@0":{"description":"Specifies a list of Linker Features that must be enabled or disabled when linking code that consumes the component.","$ref":"#/definitions/types/list(string)"},"link_flags@0":{"description":"Specifies a list of additional flags that must be supplied to the linker when linking code that consumes the component. Note that linker flags may not be portable; use of this attribute is discouraged.","$ref":"#/definitions/types/list(string)"},"link_languages@0":{"description":"Specifies the ABI language or languages of a static library (type \"archive\"). Officially supported (case-insensitive) values are \"c\" (no special handling required) and \"cpp\" (consuming the static library also requires linking against the C++ standard runtime).","$ref":"#/definitions/types/list(string)","default":["c"]},"link_libraries@0":{"description":"Specifies a list of additional libraries that must be linked against when linking code that consumes the component. (Note that packages should avoid using this attribute if at all possible. Use requires (component) instead whenever possible.)","$ref":"#/definitions/types/list(string)"},"link_location@0":{"description":"Specifies an alternate location of the component that should be used when linking against the component. This attribute typically applies only to \"dylib\" components on platforms where the library is separated into multiple file components. For example, on Windows, this attribute shall give the location of the .lib, while location shall give the location of the .dll.\n\nIf the path starts with @prefix@, the package's prefix is substituted (see Package Searching). This is recommended, as it allows packages to be relocatable.","$ref":"#/definitions/types/string"},"link_requires@0":{"description":"Specifies additional components required by a component which are needed only at the link stage. Unlike requires (component), only the required components' link dependencies should be applied transitively; additional properties such as compile and include attributes of the required component(s) should be ignored.","$ref":"#/definitions/types/list(string)"},"location@0":{"description":"Specifies the location of the component. The exact meaning of this attribute depends on the component type, but typically it provides the path to the component's primary artifact, such as a .so or .jar. (For Windows DLL components, this should be the location of the .dll. See also link_location.)\n\nIf the path starts with @prefix@, the package's prefix is substituted (see Package Searching). This is recommended, as it allows packages to be relocatable.\n\nThis attribute is required for components that are not of \"interface\" type.","$ref":"#/definitions/types/string"},"name@0":{"description":"Specifies the canonical name of the package. In order for searching to succeed, the name of the CPS file without the .cps suffix must exactly match (including case) either name as-is, or name converted to lower case.","$ref":"#/definitions/types/string"},"platform@0":{"description":"Specifies the platform on which a package's components may run. This allows tools to ignore packages which target a different platform than the platform that the consumer targets (see Package Searching). Any platform attribute not specified implies that the package's components are agnostic to that platform attribute. If this attribute is not specified, the package is implied to be platform agnostic. (This might be the case for a \"library\" which consists entirely of C/C++ headers. Note that JVM/CLR versions are platform attributes, so packages consisting entirely of Java and/or CLR components will still typically use this attribute.)","$ref":"#/definitions/types/platform"},"prefix@0":{"description":"Specifies the package's prefix for non-relocatable package. See also Prefix Determination.\n\nExactly one of cps_path or prefix is required.","$ref":"#/definitions/types/string"},"requires@0":{"description":"Specifies additional components required by a component. This is used, for example, to indicate transitive dependencies. Relative component names are interpreted relative to the current package. Absolute component names must refer to a package required by this package (see requires (package)). Compile and link attributes should be applied transitively, as if the consuming component also directly consumed the components required by the component being consumed.\n\nSee also link_requires.","$ref":"#/definitions/types/list(string)"},"requires@1":{"description":"Specifies additional packages that are required by this package. Keys are the name of another required package. Values are a valid requirement object or null (equivalent to an empty requirement object) describing the package required.","$ref":"#/definitions/types/map(requirement)"},"type@0":{"description":"Specifies the type of a component. The component type affects how the component may be used. Officially supported values are \"executable\" (any artifact which the target platform can directly execute), \"archive\" (CABI static library), \"dylib\" (CABI shared library), \"module\" (CABI plugin library), \"jar\" (Java Archive), \"interface\" and \"symbolic\". If the type is not recognized by the parser, the component shall be ignored. (Parsers are permitted to support additional types as a conforming extension.)\n\nA \"dylib\" is meant to be linked at compile time; the location specifies the artifact required for such linking (i.e. the import library on PE platforms). A \"module\" is meant to be loaded at run time with dlopen or similar; again, the location specifies the appropriate artifact.\n\nAn \"interface\" component is a special case; it may have the usual attributes of a component, but does not have a location. This can be used to create \"virtual\" components that do not have an associated artifact.\n\nA \"symbolic\" component is even more special, as it has no (required) attributes at all, and the meaning of any attributes or configurations assigned to such a component is unspecified. A \"symbolic\" component is intended to be used as a form of feature testing; a package that has a feature that is meaningful to users but does not otherwise map directly to a component may use a symbolic component to indicate availability of the feature to users.","$ref":"#/definitions/types/string"},"version@0":{"description":"Specifies the version of the package. The format of this string is determined by version_schema.\n\nIf not provided, the CPS will not satisfy any request for a specific version of the package.","$ref":"#/definitions/types/string"},"version@1":{"description":"Specifies the required version of a package. If omitted, any version of the required package is acceptable. Semantics are the same as for the version attribute of a package.","$ref":"#/definitions/types/string"},"version_schema@0":{"description":"Specifies the structure to which the package's version numbering conforms. Tools may use this to determine how to perform version comparisons. Officially supported (case-insensitive) values are \"simple\" and \"custom\" (\"rpm\" or \"dpkg\" should be used where applicable, but may not be supported by all tools). If a package uses \"custom\", version numbers may be compared, but version ordering is not possible.\n\nNeedless to say, changing a package's version scheme between releases is very strongly discouraged.\n\nNote that this attribute determines only how version numbers are ordered. It does not imply anything about the compatibility or incompatibility of various versions of a package. See also compat_version.\n\nsimple\n\nThe package's version number shall match the regular expression [0-9]+([.][0-9]+)*([-+].*)?.\n\nThe portion of the version which precedes the optional - or + may be interpreted as a tuple of integers, in which leading zeros are ignored. Version numbers are compared according to numerical order, starting from the first (left-most) number of the tuples. If two version numbers have different tuple sizes, the shorter tuple shall be implicitly filled with zeros.\n\nDeprecated since version 0.9.0: \"semver\" is a deprecated alias for \"simple\".","$ref":"#/definitions/types/string","default":"simple"},"default_license@0":{"description":"Specifies the license that is assumed to apply to a component, if none is otherwise specified. This is convenient for packages that wish their license to reflect portions of the package that are not reflected by a component (such as data files) when most or all of the compiled artifacts use the same license.\n\nThe value shall be a well formed SPDX License Expression .","$ref":"#/definitions/types/string"},"description@0":{"description":"Provides a human readable description of the function which the package or component provides.","$ref":"#/definitions/types/string"},"display_name@0":{"description":"Provides a human readable name of the package. If provided, tools may use this in informational messages instead of, or in addition to, the canonical package name.","$ref":"#/definitions/types/string"},"license@0":{"description":"Specifies the license or licenses under which the package is distributed. The value shall be a well formed SPDX License Expression .\n\nIf parts of a package use different licenses, this attribute may also be specified on a component if doing so helps to clarifying the licensing. (See also default_license.)","$ref":"#/definitions/types/string"},"meta_comment@0":{"description":"Provides a description of the file contents, for readers that may not be familiar with CPS files. The typical value is \"Common Package Specification for <package name>\".","$ref":"#/definitions/types/string"},"meta_schema@0":{"description":"Provides a URI link to a document describing the format of the CPS file. The typical value is \"https://cps-org.github.io/cps/\" (i.e. the top level page of this site).","$ref":"#/definitions/types/string"},"website@0":{"description":"Specifies the URI at which the package's website may be found.","$ref":"#/definitions/types/string","format":"uri"}}},"$ref":"#/definitions/types/package"}
</schema>

[User] Provide a JSON object that satisfies the schema "Common Package Specification v0.13". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Common Package Specification v0.13

The root of a CPS document is a package object. A package object describes a single package.

A platform describes the platform on which a package's components may run.

A requirement describes the specifics of a package dependency.

A component is a consumable part of a package. Typical components include libraries and executables.

A configuration holds attributes that are specific to a particular configuration of a component.

Specifies that the package's CABI components require the specified C standard/runtime library. Typical (case-insensitive) values include "bsd" (libc), "gnu" (glibc), "mingw" and "microsoft".

Specifies the minimum C standard/runtime library version required by the package's CABI components.

Specifies that the package's CLR (.NET) components require the specified Common Language Runtime vendor. Typical (case-insensitive) values include "microsoft" and "mono".

Specifies the minimum Common Language Runtime version required to use the package's CLR (.NET) components.

Specifies the oldest version of the package with which this version is compatible. This information is used when a consumer requests a specific version. If the version requested is equal to or newer than the compat_version, the package may be used.

If not specified, the package is not compatible with previous versions (i.e. compat_version is implicitly equal to version).

Specifies a list of Compiler Features that must be enabled or disabled when compiling code that consumes the component.

Specifies a list of additional flags that must be supplied to the compiler when compiling code that consumes the component. Note that compiler flags may not be portable; use of this attribute is discouraged.

A map may be used instead to give different values depending on the language of the consuming source file. Handling of such shall be the same as for definitions.

Specifies the components which the package provides. Keys are the component names.

Specifies a list of components which must be present in the required package in order for the requirement to be satisfied. Although the build tool will generally produce an error if a consumer uses a component which in turn requires a component that was not found, early specification via this attribute may help build tools to diagnose such issues earlier and/or produce better diagnostics.

This may also be used to specify dependencies that are not expressed in component level dependencies, such as a package's requirement that a dependency includes a certain symbolic component, or if a dependency is only expressed at run-time.

Specifies the name of the configuration described by a configuration-specific .cps (see Configuration Merging). This attribute is required in a configuration-specific .cps, and shall be ignored otherwise.

Specifies the configurations that are preferred. See Package Configurations for a description of how configurations are used.

Specifies a set of configuration-specific attributes for a component. Keys are the configuration names.

Specifies that the package's CABI components require the specified C++ standard/runtime library. Typical (case-insensitive) values include "gnu" (libstdc++), "llvm" (libc++) and "microsoft".

Specifies the minimum C++ standard/runtime library version required by the package's CABI components.

Specifies the directory portion location of the .cps file. This shall be an "absolute" path which starts with @prefix@. This provides a mechanism by which the tool may deduce the prefix of a relocatable package from the absolute location of the .cps file (which will be known by the tool). See also Prefix Determination for details.

Exactly one of cps_path or prefix is required.

Specifies the version of the CPS to which this .cps file conforms. This may be used by tools to provide backwards compatibility in case of compatibility-breaking changes in the CPS.

CPS version numbering follows semver. That is, tools that support CPS version <X>.<Y> are expected to be able to read files with cps_version <X>.<Z>, even for Z > Y (with the understanding that, in such cases, the tool may miss non-critical information that the CPS provided).

Specifies a list of components that should be inferred if a consumer specifies a dependency on a package, but not a specific component.

Specifies a collection of compile definitions that must be defined when compiling code that consumes the component. Each key in the inner map(s) is the name of a compile definition, such that e.g. -Dkey=value is passed to the compiler. A value may be null, indicating a definition with no value (e.g. -Dkey is passed to the compiler). Note that an empty string indicates -Dkey=, which may have a different effect than -Dkey.

The outer map is used to describe language-specific definitions. The build tool shall include only those definitions whose language matches (case-sensitive) that of the (lower case) language of the source file being compiled. Recognized languages shall include "c", "cpp", and "fortran". Additionally, the value "*" indicates that the corresponding definitions apply to all languages.

If a definition name is repeated in both "*" and a specific language, the latter, when applicable to the source being compiled, shall have precedence.

Specifies a list of paths where a required dependency might be located. When given, this will usually provide the location of the dependency as it was consumed by the package when the package was built, so that consumers can easily find (correct) dependencies if they are in a location that is not searched by default.

Specifies a list of directories which should be added to the include search path when compiling code that consumes the component. If a path starts with @prefix@, the package's prefix is substituted (see Package Searching). This is recommended, as it allows packages to be relocatable.

A map may be used instead to give different values depending on the language of the consuming source file. Handling of such shall be the same as for definitions.

Specifies that the package's CABI components require the specified Instruction Set Architecture. The value is case insensitive and should follow the output of uname -m.

Specifies that the package's Java components require the specified Java vendor. Typical (case-insensitive) values include "oracle" and "openjdk".

Specifies the minimum Java Virtual Machine version required to use the package's Java components.

Specifies the name of the operating system kernel required by the package's components. The value is case insensitive and should follow the output of uname -s. Typical values include "windows", "cygwin", "linux" and "darwin".

Specifies the minimum operating system kernel version required by the package's components.

Specifies a list of Linker Features that must be enabled or disabled when linking code that consumes the component.

Specifies a list of additional flags that must be supplied to the linker when linking code that consumes the component. Note that linker flags may not be portable; use of this attribute is discouraged.

Specifies the ABI language or languages of a static library (type "archive"). Officially supported (case-insensitive) values are "c" (no special handling required) and "cpp" (consuming the static library also requires linking against the C++ standard runtime).

Specifies a list of additional libraries that must be linked against when linking code that consumes the component. (Note that packages should avoid using this attribute if at all possible. Use requires (component) instead whenever possible.)

Specifies an alternate location of the component that should be used when linking against the component. This attribute typically applies only to "dylib" components on platforms where the library is separated into multiple file components. For example, on Windows, this attribute shall give the location of the .lib, while location shall give the location of the .dll.

If the path starts with @prefix@, the package's prefix is substituted (see Package Searching). This is recommended, as it allows packages to be relocatable.

Specifies additional components required by a component which are needed only at the link stage. Unlike requires (component), only the required components' link dependencies should be applied transitively; additional properties such as compile and include attributes of the required component(s) should be ignored.

Specifies the location of the component. The exact meaning of this attribute depends on the component type, but typically it provides the path to the component's primary artifact, such as a .so or .jar. (For Windows DLL components, this should be the location of the .dll. See also link_location.)

If the path starts with @prefix@, the package's prefix is substituted (see Package Searching). This is recommended, as it allows packages to be relocatable.

This attribute is required for components that are not of "interface" type.

Specifies the canonical name of the package. In order for searching to succeed, the name of the CPS file without the .cps suffix must exactly match (including case) either name as-is, or name converted to lower case.

Specifies the platform on which a package's components may run. This allows tools to ignore packages which target a different platform than the platform that the consumer targets (see Package Searching). Any platform attribute not specified implies that the package's components are agnostic to that platform attribute. If this attribute is not specified, the package is implied to be platform agnostic. (This might be the case for a "library" which consists entirely of C/C++ headers. Note that JVM/CLR versions are platform attributes, so packages consisting entirely of Java and/or CLR components will still typically use this attribute.)

Specifies the package's prefix for non-relocatable package. See also Prefix Determination.

Exactly one of cps_path or prefix is required.

Specifies additional components required by a component. This is used, for example, to indicate transitive dependencies. Relative component names are interpreted relative to the current package. Absolute component names must refer to a package required by this package (see requires (package)). Compile and link attributes should be applied transitively, as if the consuming component also directly consumed the components required by the component being consumed.

See also link_requires.

Specifies additional packages that are required by this package. Keys are the name of another required package. Values are a valid requirement object or null (equivalent to an empty requirement object) describing the package required.

Specifies the type of a component. The component type affects how the component may be used. Officially supported values are "executable" (any artifact which the target platform can directly execute), "archive" (CABI static library), "dylib" (CABI shared library), "module" (CABI plugin library), "jar" (Java Archive), "interface" and "symbolic". If the type is not recognized by the parser, the component shall be ignored. (Parsers are permitted to support additional types as a conforming extension.)

A "dylib" is meant to be linked at compile time; the location specifies the artifact required for such linking (i.e. the import library on PE platforms). A "module" is meant to be loaded at run time with dlopen or similar; again, the location specifies the appropriate artifact.

An "interface" component is a special case; it may have the usual attributes of a component, but does not have a location. This can be used to create "virtual" components that do not have an associated artifact.

A "symbolic" component is even more special, as it has no (required) attributes at all, and the meaning of any attributes or configurations assigned to such a component is unspecified. A "symbolic" component is intended to be used as a form of feature testing; a package that has a feature that is meaningful to users but does not otherwise map directly to a component may use a symbolic component to indicate availability of the feature to users.

Specifies the version of the package. The format of this string is determined by version_schema.

If not provided, the CPS will not satisfy any request for a specific version of the package.

Specifies the required version of a package. If omitted, any version of the required package is acceptable. Semantics are the same as for the version attribute of a package.

Specifies the structure to which the package's version numbering conforms. Tools may use this to determine how to perform version comparisons. Officially supported (case-insensitive) values are "simple" and "custom" ("rpm" or "dpkg" should be used where applicable, but may not be supported by all tools). If a package uses "custom", version numbers may be compared, but version ordering is not possible.

Needless to say, changing a package's version scheme between releases is very strongly discouraged.

Note that this attribute determines only how version numbers are ordered. It does not imply anything about the compatibility or incompatibility of various versions of a package. See also compat_version.

simple

The package's version number shall match the regular expression [0-9]+([.][0-9]+)*([-+].*)?.

The portion of the version which precedes the optional - or + may be interpreted as a tuple of integers, in which leading zeros are ignored. Version numbers are compared according to numerical order, starting from the first (left-most) number of the tuples. If two version numbers have different tuple sizes, the shorter tuple shall be implicitly filled with zeros.

Deprecated since version 0.9.0: "semver" is a deprecated alias for "simple".

Specifies the license that is assumed to apply to a component, if none is otherwise specified. This is convenient for packages that wish their license to reflect portions of the package that are not reflected by a component (such as data files) when most or all of the compiled artifacts use the same license.

The value shall be a well formed SPDX License Expression .

Provides a human readable description of the function which the package or component provides.

Provides a human readable name of the package. If provided, tools may use this in informational messages instead of, or in addition to, the canonical package name.

Specifies the license or licenses under which the package is distributed. The value shall be a well formed SPDX License Expression .

If parts of a package use different licenses, this attribute may also be specified on a component if doing so helps to clarifying the licensing. (See also default_license.)

Provides a description of the file contents, for readers that may not be familiar with CPS files. The typical value is "Common Package Specification for <package name>".

Provides a URI link to a document describing the format of the CPS file. The typical value is "https://cps-org.github.io/cps/" (i.e. the top level page of this site).

Specifies the URI at which the package's website may be found.

Provide a JSON object that satisfies the schema "Common Package Specification v0.13". Here are the required top‑level fields: none (all optional). 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#","id":"https://json.schemastore.org/creatomic.json","properties":{"tslint.enable":{"type":"boolean","default":true,"description":"Control whether tslint is enabled for TypeScript files or not."},"tslint.jsEnable":{"type":"boolean","default":false,"description":"Control whether tslint is enabled for JavaScript files or not.","scope":"resource"},"tslint.rulesDirectory":{"type":["string","array"],"items":{"type":"string"},"description":"An additional rules directory","default":"","scope":"resource"},"tslint.validateWithDefaultConfig":{"type":"boolean","description":"Validate a file when there is only a default tslint configuration is found","default":false,"scope":"resource"},"tslint.configFile":{"type":"string","description":"The path to the rules configuration file","default":"","scope":"resource"},"tslint.ignoreDefinitionFiles":{"type":"boolean","default":true,"description":"Control if TypeScript definition files should be ignored","scope":"resource"},"tslint.exclude":{"type":["string","array"],"items":{"type":"string"},"description":"Configure glob patterns of file paths to exclude from linting","scope":"resource"},"tslint.run":{"type":"string","enum":["onSave","onType"],"default":"onType","description":"Run the linter on save (onSave) or on type (onType)","scope":"window"},"tslint.nodePath":{"type":"string","default":"","description":"A path added to NODE_PATH when resolving the tslint module.","scope":"resource"},"tslint.autoFixOnSave":{"type":["boolean","array"],"items":{"type":"string"},"default":false,"description":"Turns auto fix on save on or off, or defines which rules (e.g. `no-var-keyword`) to auto fix on save.","scope":"resource"},"tslint.alwaysShowRuleFailuresAsWarnings":{"type":"boolean","default":false,"description":"Always show rule failures as warnings, independent of the tslint configuration.","scope":"resource"}},"title":"JSON schema for Creatomic configuration file","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Creatomic configuration file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Control whether tslint is enabled for TypeScript files or not.

Control whether tslint is enabled for JavaScript files or not.

An additional rules directory

Validate a file when there is only a default tslint configuration is found

The path to the rules configuration file

Control if TypeScript definition files should be ignored

Configure glob patterns of file paths to exclude from linting

Run the linter on save (onSave) or on type (onType)

A path added to NODE_PATH when resolving the tslint module.

Turns auto fix on save on or off, or defines which rules (e.g. `no-var-keyword`) to auto fix on save.

Always show rule failures as warnings, independent of the tslint configuration.

Provide a JSON object that satisfies the schema "JSON schema for Creatomic configuration file". Here are the required top‑level fields: none (all optional). 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#","$comment":"https://support.crowdin.com/configuration-file/","description":"Configuration for Crowdin, a crowd-translation platform.","id":"https://json.schemastore.org/crowdin.json","properties":{"project_id":{"title":"Project ID","type":"string"},"project_id_env":{"title":"Project ID Environment Variable","type":"string"},"api_token":{"title":"API Token","type":"string"},"api_token_env":{"title":"API Token Environment Variable","type":"string"},"base_path":{"title":"Base Path","type":"string"},"base_path_env":{"title":"Base Path Environment Variable","type":"string"},"base_url":{"title":"Base URL","type":"string","format":"uri"},"base_url_env":{"title":"Base URL Environment Variable","type":"string"},"preserve_hierarchy":{"title":"Preserve Hierarchy","type":"boolean"},"commit_message":{"title":"Commit Message","type":"string"},"append_commit_message":{"title":"Append Commit Message","description":"Replace the default commit message with the one specified in commit_message.","type":"boolean"},"export_languages":{"title":"Export Languages","description":"Specify a list of specific languages to export.","type":"array","items":{"title":"Language","type":"string"}},"files":{"title":"Files","type":"array","items":{"title":"File","type":"object","properties":{"source":{"title":"Source","type":"string"},"translation":{"title":"Translation","type":"string"},"ignore":{"title":"Ignore","type":"array","items":{"type":"string"}},"translation_replace":{"title":"Translation Replace","additionalProperties":{"type":"string"}},"excluded_target_languages":{"title":"Excluded Target Languages","type":"array","items":{"title":"Excluded Target Language","type":"string"}},"scheme":{"title":"Scheme","type":"string"},"dest":{"title":"Destination","type":"string"},"type":{"title":"Type","type":"string"},"update_option":{"title":"Update Option","enum":["update_as_unapproved","update_without_changes"]},"translate_content":{"title":"Translate Content","description":"Defines whether to translate texts placed inside the tags.","type":"number","minimum":0,"maximum":1,"default":1},"translate_attributes":{"title":"Translate Attributes","description":"Defines whether to translate tags' attributes.","type":"number","minimum":0,"maximum":1,"default":1},"content_segmentation":{"title":"Content Segmentation","description":"Defines whether to split long texts into smaller text segments.","type":"number","minimum":0,"maximum":1,"default":1},"translatable_elements":{"title":"Translatable Elements","description":"An array of strings, where each item is the XPaths to DOM element that should be imported. ","type":"array","items":{"title":"Translatable Element","type":"string"}},"skip_untranslated_strings":{"title":"Skip Untranslated Strings","type":"boolean"},"skip_untranslated_files":{"title":"Skip Untranslated Files","type":"boolean"},"export_only_approved":{"title":"Export Only Approved","type":"boolean"},"escape_quotes":{"title":"Escape Quotes","description":"Defines whether a single quote should be escaped by another single quote or backslash in exported translations.","type":"number","minimum":0,"maximum":3,"default":3},"escape_special_characters":{"title":"Escape Special Characters","description":"Defines whether any special characters (=, :, ! and #) should be escaped by backslash in exported translations.","type":"number","minimum":0,"maximum":1,"default":1},"first_line_contains_header":{"title":"First Line Contains Header","type":"boolean"},"languages_mapping":{"title":"Language Mapping","properties":{"two_letters_code":{"additionalProperties":{"type":"string"}},"android_code":{"additionalProperties":{"type":"string"}}}},"labels":{"title":"Labels","type":"array","items":{"title":"Label","type":"string"}}}}}},"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "crowdin". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Configuration for Crowdin, a crowd-translation platform.

Project ID

Project ID Environment Variable

API Token

API Token Environment Variable

Base Path

Base Path Environment Variable

Base URL

Base URL Environment Variable

Preserve Hierarchy

Commit Message

Append Commit Message

Replace the default commit message with the one specified in commit_message.

Export Languages

Specify a list of specific languages to export.

Language

Files

File

Source

Translation

Ignore

Translation Replace

Excluded Target Languages

Excluded Target Language

Scheme

Destination

Type

Update Option

Translate Content

Defines whether to translate texts placed inside the tags.

Translate Attributes

Defines whether to translate tags' attributes.

Content Segmentation

Defines whether to split long texts into smaller text segments.

Translatable Elements

An array of strings, where each item is the XPaths to DOM element that should be imported.

Translatable Element

Skip Untranslated Strings

Skip Untranslated Files

Export Only Approved

Escape Quotes

Defines whether a single quote should be escaped by another single quote or backslash in exported translations.

Escape Special Characters

Defines whether any special characters (=, :, ! and #) should be escaped by backslash in exported translations.

First Line Contains Header

Language Mapping

Labels

Label

Provide a JSON object that satisfies the schema "crowdin". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "CryProj schema". Here are the required top‑level fields: content, info, require, version. Return only the valid JSON object.

Variable name

CVar name

Command name

Console command name

Value of the CVar

The default value of the CVar

Assets folder

This indicates where the assets are stored

Code folder

This indicates where the code is stored

Lib's name

Lib's name to import for all the supported platforms

Lib's name to import for the win_x64 platform

Lib's name to import for the win_x86 platform

Project name

This indicates the project name

Project GUID

Engine version

This indicates which engine version will be used

Plugin name

Required plugin's name

CryDefaultEntities CrySensorSystem CryPerceptionSystem CryUserAnalytics CryOSVR CryOculusVR CryOpenVR CryLobby

Plugin type

EPluginType::Native if it's a C++ plugin, EPluginType::Managed if it's a C# one

This plugin will be used only by these platforms

Project version

Value of the command

Arguments that has to be passed to the command. Leave empty if it has not parameters

CryProj schema

Provide a JSON object that satisfies the schema "CryProj schema". Here are the required top‑level fields: content, info, require, version. Return only the valid JSON object.