[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://f-droid.org/metadata.yml","title":"F-Droid Data metadata","description":"For every app on F-Droid a metadata file in the format of <application-id>.yml have to be provided, in order to build an app or check or if it has been updated. See https://f-droid.org/docs/Build_Metadata_Reference for a complete reference of a metadata file.","type":"object","properties":{"AntiFeatures":{"description":"Any number of anti-features the application has.","$ref":"#/definitions/anti_features"},"Categories":{"description":"Any number of categories for the application to be placed in.","type":"array","items":{"type":"string","enum":["App Store & Updater","Bookmark","Browser","Calculator","Calendar & Agenda","Cloud Storage & File Sync","Connectivity","Development","DNS & Hosts","Draw","Ebook Reader","Email","File Encryption & Vault","File Transfer","Finance Manager","Gallery","Games","Graphics","Icon Pack","Internet","Keyboard & IME","Launcher","Local Media Player","Messaging","Money","Multimedia","Navigation","News","Note","Online Media Player","Pass Wallet","Password & 2FA","Phone & SMS","Podcast","Reading","Recipe Manager","Science & Education","Security","Social Network","Sports & Health","System","Text Editor","Theming","Time","Translation & Dictionary","Unit Convertor","Voice & Video Chat","VPN & Proxy","Wallet","Wallpaper","Weather","Workout","Writing"]},"uniqueItems":true,"minItems":1},"License":{"description":"","type":"string","enum":["0BSD","AAL","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AGPL-3.0-only","AGPL-3.0-or-later","APL-1.0","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","Apache-1.0","Apache-1.1","Apache-2.0","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","Beerware","BSD-1-Clause","BSD-2-Clause","BSD-2-Clause-FreeBSD","BSD-2-Clause-Patent","BSD-3-Clause","BSD-3-Clause-Clear","BSD-3-Clause-LBNL","BSD-4-Clause","BSL-1.0","BitTorrent-1.1","CAL-1.0","CAL-1.0-Combined-Work-Exception","CATOSL-1.1","CC-BY-4.0","CC-BY-SA-4.0","CC0-1.0","CDDL-1.0","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","CNRI-Python","CPAL-1.0","CPL-1.0","CUA-OPL-1.0","ClArtistic","Condor-1.1","ECL-1.0","ECL-2.0","EFL-1.0","EFL-2.0","EPL-1.0","EPL-2.0","EUDatagrid","EUPL-1.1","EUPL-1.2","Entessa","FSFAP","FTL","Fair","Frameworx-1.0","GFDL-1.1-only","GFDL-1.1-or-later","GFDL-1.2-only","GFDL-1.2-or-later","GFDL-1.3-only","GFDL-1.3-or-later","GPL-2.0-only","GPL-2.0-or-later","GPL-3.0-only","GPL-3.0-or-later","HPND","IJG","IPA","IPL-1.0","ISC","Imlib2","Intel","LGPL-2.0-only","LGPL-2.0-or-later","LGPL-2.1-only","LGPL-2.1-or-later","LGPL-3.0-only","LGPL-3.0-or-later","LPL-1.0","LPL-1.02","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","LiLiQ-P-1.1","LiLiQ-R-1.1","LiLiQ-Rplus-1.1","MIT","MIT-0","MIT-CMU","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","MS-PL","MS-RL","MirOS","Motosoto","MulanPSL-2.0","Multics","NASA-1.3","NCSA","NGPL","NOSL","NPL-1.0","NPL-1.1","NPOSL-3.0","NTP","Naumen","Nokia","OCLC-2.0","ODbL-1.0","OFL-1.0","OFL-1.1","OFL-1.1-RFN","OFL-1.1-no-RFN","OGTSL","OLDAP-2.3","OLDAP-2.7","OLDAP-2.8","OSET-PL-2.1","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenSSL","PHP-3.0","PHP-3.01","PostgreSQL","Python-2.0","QPL-1.0","RPL-1.1","RPL-1.5","RPSL-1.0","RSCPL","Ruby","SGI-B-2.0","SISSL","SMLNJ","SPL-1.0","SimPL-2.0","Sleepycat","UCL-1.0","UPL-1.0","Unicode-DFS-2016","Unlicense","VSL-1.0","Vim","W3C","WTFPL","Watcom-1.0","X11","XFree86-1.1","Xnet","XSkat","YPL-1.1","ZPL-2.0","ZPL-2.1","Zend-2.0","Zimbra-1.3","Zlib","gnuplot","iMatix","xinetd","PublicDomain"]},"AuthorName":{"description":"The name of the author, either full, abbreviated or pseudonym.","type":"string"},"AuthorEmail":{"description":"The e-mail address of the author(s).","type":"string","pattern":"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"},"AuthorWebSite":{"description":"The website url of the author(s).","$ref":"#/definitions/url"},"WebSite":{"description":"The URL for the application's web site.","$ref":"#/definitions/url"},"SourceCode":{"description":"The URL to view or obtain the application's source code. This should be something human-friendly.","$ref":"#/definitions/url"},"IssueTracker":{"description":"The URL for the application's issue tracker.","$ref":"#/definitions/url"},"Translation":{"description":"The URL for the application's translation portal or at least a guide.","$ref":"#/definitions/url"},"Changelog":{"description":"The URL for the application's changelog.","$ref":"#/definitions/url"},"Donate":{"description":"The URL to donate to the project.","type":"string","pattern":"^https://.*$"},"Liberapay":{"description":"The project's Liberapay (https://liberapay.com) user or group name.","type":"string"},"OpenCollective":{"description":"The project's OpenCollective (https://opencollective.com) user or group name.","type":"string"},"Bitcoin":{"description":"A Bitcoin address for donating to the project.","type":"string","pattern":"^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$"},"Litecoin":{"description":"A Litecoin address for donating to the project.","type":"string","pattern":"^([LM3][a-km-zA-HJ-NP-Z1-9]{26,33}|ltc1[a-km-z0-9]{39})$"},"Name":{"description":"The title of the application, with optional descriptive phrase.","type":"string"},"AutoName":{"description":"The name of the application as can best be retrieved from the source code.","type":"string"},"Summary":{"description":"DEPRECATED. A brief summary of what the application is. Should rather be provided via Fastlane.","type":"string","maxLength":80},"Description":{"description":"DEPRECATED. A full description of the application, relevant to the latest version. Should rather be provided via Fastlane.","type":"string","maxLength":4000},"AllowedAPKSigningKeys":{"description":"The lowercase hex value of the SHA-256 fingerprint of the signing certificate of an app. If an APK of that app is not signed by one of these keys, it will not be included in the repository.","anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"array","items":{"type":"string","pattern":"^[0-9a-f]{64}$"}}]},"MaintainerNotes":{"description":"This is a multi-line field using the same rules and syntax as the description. It's used to record notes for F-Droid maintainers to assist in maintaining and updating the application in the repository.","type":"string","maxLength":4000},"RepoType":{"description":"The type of repository - for automatic building from source.","type":"string","enum":["git","svn","git-svn","hg","bzr","srclib"]},"Repo":{"description":"The repository location. Usually a git: or svn: URL, for example.","type":"string"},"Binaries":{"description":"The location of binaries used in verification process.","$ref":"#/definitions/url"},"Builds":{"description":"Any number of sub-entries can be present, each specifying a version to automatically build from source.","type":"array","items":{"type":"object","properties":{"versionName":{"description":"Specifies to build version xxx, which has a version code of yyy.","type":"string"},"versionCode":{"description":"Specifies to build version xxx, which has a version code of yyy.","type":"integer"},"commit":{"description":"The commit parameter specifies the tag, commit or revision number from which to build it in the source repository.","type":"string"},"disable":{"description":"Disables this build, giving a reason why.","type":"string"},"subdir":{"description":"Specifies to build from a subdirectory of the checked out source code. Normally this directory is changed to before building.","type":"string"},"submodules":{"description":"Use if the project (git only) has submodules - causes git submodule update --init --recursive to be executed after the source is cloned.","const":true},"sudo":{"description":"Specifies a script to be run using sudo bash -x -c \"xxxx\" in the Buildserver VM guest. This script is run with full root privileges, but the state will be reset after each build.","$ref":"#/definitions/string_list"},"timeout":{"description":"Time limit for this build (in seconds). After time is up, Buildserver VM is forcefully terminated. The default is 7200 (2 hours); 0 means no limit.","type":"integer"},"init":{"description":"Like 'prebuild', but runs on the source code BEFORE any other processing takes place.","$ref":"#/definitions/string_list"},"oldsdkloc":{"description":"The sdk location in the repo is in an old format, or the build.xml is expecting such. The 'new' format is sdk.dir while the VERY OLD format is sdk-location.","const":true},"target":{"description":"Specifies a particular SDK target for compilation, overriding the value defined in the code by upstream. This has different effects depending on what build system used \u2014 this flag currently affects Ant, Maven and Gradle projects only.","type":"string"},"androidupdate":{"description":"By default, 'android update' is used in Ant builds to generate or update the project and all its referenced projects. Specifying update=no bypasses that. Note that this is useless in builds that don't use Ant.","anyOf":[{"const":"auto"},{"type":"array","items":{"type":"string"}}]},"encoding":{"description":"Adds a java.encoding property to local.properties with the given value. Generally the value will be 'utf-8'.","type":"string"},"forceversion":{"description":"If specified, the package version in AndroidManifest.xml is replaced with the version name for the build as specified in the metadata.","const":true},"forcevercode":{"description":"If specified, the package version code in the AndroidManifest.xml is replaced with the version code for the build. See also forceversion.","const":true},"rm":{"description":"Specifies the relative paths of files or directories to delete before the build is done.","$ref":"#/definitions/string_list"},"extlibs":{"description":"List of external libraries (jar files) from the build/extlib library, which will be placed in the libs directory of the project.","$ref":"#/definitions/string_list"},"srclibs":{"description":"Comma-separated list of source libraries or Android projects. Each item is of the form name@rev where name is the predefined source library name and rev is the revision or tag to use in the respective source control.","$ref":"#/definitions/string_list"},"patch":{"description":"Apply patch(es). 'x' names one (or more - comma-separated) files within a directory below the metadata, with the same name as the metadata file but without the extension. Each of these patches is applied to the code in turn.","$ref":"#/definitions/string_list"},"prebuild":{"description":"Specifies a shell command (or commands - chain with &&) to run before the build takes place.","$ref":"#/definitions/string_list"},"scanignore":{"description":"Enables one or more files/paths to be excluded from the scan process. This should only be used where there is a very good reason, and probably accompanied by a comment explaining why it is necessary.","$ref":"#/definitions/string_list"},"scandelete":{"description":"When running the scan process, any files that trigger errors - like binaries - will be removed. It acts just like scanignore, but instead of ignoring the files, it removes them.","$ref":"#/definitions/string_list"},"build":{"description":"As for 'prebuild', but runs during the actual build phase (but before the main Ant/Maven build). Use this only for actions that do actual building. Any preparation of the source code should be done using 'init' or 'prebuild'.","$ref":"#/definitions/string_list"},"postbuild":{"description":"Specifies a single or a list of shell commands to run after the build takes place.","$ref":"#/definitions/string_list"},"buildjni":{"description":"Enables building of native code via the ndk-build script before doing the main Ant build.","anyOf":[{"type":"string","enum":["yes","no"]},{"type":"array","items":{"type":"string"}}]},"ndk":{"description":"Version of the NDK to use in this build.","type":"string"},"gradle":{"description":"Build with Gradle instead of Ant, specifying what flavours to use. Flavours are case sensitive since the path to the output APK is as well.","anyOf":[{"type":"array","items":{"const":"yes"},"maxItems":1},{"type":"array","items":{"type":"string"}}]},"maven":{"description":"Build with Maven instead of Ant. An extra @<dir> tells F-Droid to run Maven inside that relative subdirectory.","anyOf":[{"type":"string"},{"type":"string","enum":["yes","yes@"]}]},"preassemble":{"description":"List of Gradle tasks to be run before the assemble task in a Gradle project build.","$ref":"#/definitions/string_list"},"gradleprops":{"description":"List of Gradle properties to pass via the command line to Gradle. A property can be of the form foo or of the form key=value.","$ref":"#/definitions/string_list"},"antcommands":{"description":"Specify an alternate set of Ant commands (target) instead of the default 'release'. It can't be given any flags, such as the path to a build.xml.","$ref":"#/definitions/string_list"},"output":{"description":"Specify a glob path where the resulting unsigned release APK from the build should be.","type":"string"},"binary":{"description":"The location of binaries used in verification process.","$ref":"#/definitions/url"},"novcheck":{"description":"Don't check that the version name and code in the resulting APK are correct by looking at the build output - assume the metadata is correct.","const":true},"antifeatures":{"description":"List of Anti-Features for this specific build. They are described in AntiFeatures.","$ref":"#/definitions/anti_features"}},"required":["versionName","versionCode"],"additionalProperties":false},"uniqueItems":true,"minItems":1},"Disabled":{"description":"If this field is present, the application does not get put into the public index. The value should be a description of why the application is disabled.","type":"string"},"RequiresRoot":{"description":"Whether the application requires root privileges to be usable.","type":"boolean"},"ArchivePolicy":{"description":"This determines the number of versions to keep. The older versions of the app are moved to the archive repo, if one is configured. Defaults to 3.","type":"integer"},"AutoUpdateMode":{"description":"This determines the method used for auto-generating new builds when new releases are available - in other words, adding a new Build Version line to the metadata.","type":"string","anyOf":[{"enum":["None","Version"]},{"pattern":"^Version( \\+.+)? [^+].+"}]},"UpdateCheckMode":{"description":"This determines the method using for determining when new releases are available - in other words, the updating of the CurrentVersion and CurrentVersionCode fields in the metadata by the fdroid checkupdates process.","type":"string","anyOf":[{"enum":["None","Static","HTTP"]},{"pattern":"^RepoManifest(/.+)?$"},{"pattern":"^Tags( .*)?$"}]},"VercodeOperation":{"description":"A list of operations to be applied to the vercode obtained by the defined UpdateCheckMode. %c will be replaced by the actual vercode, and each string will be passed to python's eval function to calculate a version code.","type":"array","items":{"type":"string"},"uniqueItems":true,"minItems":1},"UpdateCheckIgnore":{"description":"When checking for updates (via UpdateCheckMode) this can be used to specify a regex which, if matched against the version name, causes that version to be ignored.","type":"string"},"UpdateCheckName":{"description":"When checking for updates (via UpdateCheckMode) this can be used to specify the package name to search for. Useful when apps have a static package name but change it programmatically in some app flavors, by e.g. appending \u201c.open\u201d or \u201c.free\u201d at the end of the package name.","anyOf":[{"type":"string"},{"type":"string","enum":["Ignore"]}]},"UpdateCheckData":{"description":"Used in conjunction with UpdateCheckMode for certain modes.","type":"string"},"CurrentVersion":{"description":"The name of the version that is the recommended release. There may be newer versions of the application than this (e.g. unstable versions), and there will almost certainly be older ones.","type":"string"},"CurrentVersionCode":{"description":"The version code corresponding to the CurrentVersion field.","type":"integer"},"NoSourceSince":{"description":"In case we are missing the source code for the CurrentVersion reported by Upstream, or that Non-Free elements have been introduced, this defines the first version that began to miss source code.","type":"string"}},"required":["Categories","License","Builds"],"allOf":[{"anyOf":[{"required":["Repo","RepoType","SourceCode"]},{"required":["NoSourceSince"]}]},{"if":{"anyOf":[{"properties":{"ArchivePolicy":{"const":0}},"required":["ArchivePolicy"]},{"required":["NoSourceSince"]}]},"then":{"properties":{"UpdateCheckMode":{"const":"None"}}}},{"if":{"anyOf":[{"required":["Binaries"]},{"properties":{"Builds":{"contains":{"required":["binary"]}}},"required":["Builds"]}]},"then":{"required":["AllowedAPKSigningKeys"]}},{"if":{"properties":{"UpdateCheckMode":{"pattern":"^Tags"}}},"then":{"properties":{"AutoUpdateMode":{"type":"string","pattern":"^(None|Version( \\+.+)?)$"}}}},{"if":{"properties":{"UpdateCheckMode":{"const":"HTTP"}}},"then":{"properties":{"AutoUpdateMode":{"type":"string","pattern":"^(None|Version .+)$"}},"required":["UpdateCheckData"]}},{"if":{"properties":{"UpdateCheckMode":{"anyOf":[{"enum":["None","Static"]},{"pattern":"^RepoManifest(/.+)?$"}]}}},"then":{"properties":{"AutoUpdateMode":{"const":"None"}}}}],"additionalProperties":false,"definitions":{"anti_features":{"$id":"#antifeatures","oneOf":[{"type":"array","items":{"type":"string","enum":["Ads","ApplicationDebuggable","KnownVuln","NonFreeAdd","NonFreeAssets","NonFreeDep","NonFreeNet","NoSourceSince","NSFW","UpstreamNonFree","TetheredNet","Tracking"]},"uniqueItems":true,"minItems":1},{"type":"object","patternProperties":{"^(Ads|ApplicationDebuggable|KnownVuln|NonFreeAdd|NonFreeAssets|NonFreeDep|NonFreeNet|NoSourceSince|NSFW|UpstreamNonFree|TetheredNet|Tracking)$":{"$ref":"#/definitions/localized_string"}},"additionalProperties":false}]},"string_list":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"localized_string":{"type":"object","patternProperties":{"^[a-z]{2,3}(-([A-Z][a-zA-Z]+|\\d+|[a-z]+))*$":{"type":"string"}},"additionalProperties":false},"url":{"type":"string","pattern":"^https?://.*$"}}}
</schema>

[User] Provide a JSON object that satisfies the schema "F-Droid Data metadata". Here are the required top‑level fields: Categories, License, Builds. Return only the valid JSON object.

F-Droid Data metadata

For every app on F-Droid a metadata file in the format of <application-id>.yml have to be provided, in order to build an app or check or if it has been updated. See https://f-droid.org/docs/Build_Metadata_Reference for a complete reference of a metadata file.

Any number of anti-features the application has.

Any number of categories for the application to be placed in.

App Store & Updater
Bookmark
Browser
Calculator
Calendar & Agenda
Cloud Storage & File Sync
Connectivity
Development
DNS & Hosts
Draw
Ebook Reader
Email
File Encryption & Vault
File Transfer
Finance Manager
Gallery
Games
Graphics
Icon Pack
Internet
Keyboard & IME
Launcher
Local Media Player
Messaging
Money
Multimedia
Navigation
News
Note
Online Media Player
Pass Wallet
Password & 2FA
Phone & SMS
Podcast
Reading
Recipe Manager
Science & Education
Security
Social Network
Sports & Health
System
Text Editor
Theming
Time
Translation & Dictionary
Unit Convertor
Voice & Video Chat
VPN & Proxy
Wallet
Wallpaper
Weather
Workout
Writing

The name of the author, either full, abbreviated or pseudonym.

The e-mail address of the author(s).

The website url of the author(s).

The URL for the application's web site.

The URL to view or obtain the application's source code. This should be something human-friendly.

The URL for the application's issue tracker.

The URL for the application's translation portal or at least a guide.

The URL for the application's changelog.

The URL to donate to the project.

The project's Liberapay (https://liberapay.com) user or group name.

The project's OpenCollective (https://opencollective.com) user or group name.

A Bitcoin address for donating to the project.

A Litecoin address for donating to the project.

The title of the application, with optional descriptive phrase.

The name of the application as can best be retrieved from the source code.

DEPRECATED. A brief summary of what the application is. Should rather be provided via Fastlane.

DEPRECATED. A full description of the application, relevant to the latest version. Should rather be provided via Fastlane.

The lowercase hex value of the SHA-256 fingerprint of the signing certificate of an app. If an APK of that app is not signed by one of these keys, it will not be included in the repository.

This is a multi-line field using the same rules and syntax as the description. It's used to record notes for F-Droid maintainers to assist in maintaining and updating the application in the repository.

The type of repository - for automatic building from source.

The repository location. Usually a git: or svn: URL, for example.

The location of binaries used in verification process.

Any number of sub-entries can be present, each specifying a version to automatically build from source.

Specifies to build version xxx, which has a version code of yyy.

The commit parameter specifies the tag, commit or revision number from which to build it in the source repository.

Disables this build, giving a reason why.

Specifies to build from a subdirectory of the checked out source code. Normally this directory is changed to before building.

Use if the project (git only) has submodules - causes git submodule update --init --recursive to be executed after the source is cloned.

Specifies a script to be run using sudo bash -x -c "xxxx" in the Buildserver VM guest. This script is run with full root privileges, but the state will be reset after each build.

Time limit for this build (in seconds). After time is up, Buildserver VM is forcefully terminated. The default is 7200 (2 hours); 0 means no limit.

Like 'prebuild', but runs on the source code BEFORE any other processing takes place.

The sdk location in the repo is in an old format, or the build.xml is expecting such. The 'new' format is sdk.dir while the VERY OLD format is sdk-location.

Specifies a particular SDK target for compilation, overriding the value defined in the code by upstream. This has different effects depending on what build system used — this flag currently affects Ant, Maven and Gradle projects only.

By default, 'android update' is used in Ant builds to generate or update the project and all its referenced projects. Specifying update=no bypasses that. Note that this is useless in builds that don't use Ant.

Adds a java.encoding property to local.properties with the given value. Generally the value will be 'utf-8'.

If specified, the package version in AndroidManifest.xml is replaced with the version name for the build as specified in the metadata.

If specified, the package version code in the AndroidManifest.xml is replaced with the version code for the build. See also forceversion.

Specifies the relative paths of files or directories to delete before the build is done.

List of external libraries (jar files) from the build/extlib library, which will be placed in the libs directory of the project.

Comma-separated list of source libraries or Android projects. Each item is of the form name@rev where name is the predefined source library name and rev is the revision or tag to use in the respective source control.

Apply patch(es). 'x' names one (or more - comma-separated) files within a directory below the metadata, with the same name as the metadata file but without the extension. Each of these patches is applied to the code in turn.

Specifies a shell command (or commands - chain with &&) to run before the build takes place.

Enables one or more files/paths to be excluded from the scan process. This should only be used where there is a very good reason, and probably accompanied by a comment explaining why it is necessary.

When running the scan process, any files that trigger errors - like binaries - will be removed. It acts just like scanignore, but instead of ignoring the files, it removes them.

As for 'prebuild', but runs during the actual build phase (but before the main Ant/Maven build). Use this only for actions that do actual building. Any preparation of the source code should be done using 'init' or 'prebuild'.

Specifies a single or a list of shell commands to run after the build takes place.

Enables building of native code via the ndk-build script before doing the main Ant build.

Version of the NDK to use in this build.

Build with Gradle instead of Ant, specifying what flavours to use. Flavours are case sensitive since the path to the output APK is as well.

Build with Maven instead of Ant. An extra @<dir> tells F-Droid to run Maven inside that relative subdirectory.

List of Gradle tasks to be run before the assemble task in a Gradle project build.

List of Gradle properties to pass via the command line to Gradle. A property can be of the form foo or of the form key=value.

Specify an alternate set of Ant commands (target) instead of the default 'release'. It can't be given any flags, such as the path to a build.xml.

Specify a glob path where the resulting unsigned release APK from the build should be.

Don't check that the version name and code in the resulting APK are correct by looking at the build output - assume the metadata is correct.

List of Anti-Features for this specific build. They are described in AntiFeatures.

If this field is present, the application does not get put into the public index. The value should be a description of why the application is disabled.

Whether the application requires root privileges to be usable.

This determines the number of versions to keep. The older versions of the app are moved to the archive repo, if one is configured. Defaults to 3.

This determines the method used for auto-generating new builds when new releases are available - in other words, adding a new Build Version line to the metadata.

This determines the method using for determining when new releases are available - in other words, the updating of the CurrentVersion and CurrentVersionCode fields in the metadata by the fdroid checkupdates process.

A list of operations to be applied to the vercode obtained by the defined UpdateCheckMode. %c will be replaced by the actual vercode, and each string will be passed to python's eval function to calculate a version code.

When checking for updates (via UpdateCheckMode) this can be used to specify a regex which, if matched against the version name, causes that version to be ignored.

When checking for updates (via UpdateCheckMode) this can be used to specify the package name to search for. Useful when apps have a static package name but change it programmatically in some app flavors, by e.g. appending “.open” or “.free” at the end of the package name.

Used in conjunction with UpdateCheckMode for certain modes.

The name of the version that is the recommended release. There may be newer versions of the application than this (e.g. unstable versions), and there will almost certainly be older ones.

The version code corresponding to the CurrentVersion field.

In case we are missing the source code for the CurrentVersion reported by Upstream, or that Non-Free elements have been introduced, this defines the first version that began to miss source code.

Ads ApplicationDebuggable KnownVuln NonFreeAdd NonFreeAssets NonFreeDep NonFreeNet NoSourceSince NSFW UpstreamNonFree TetheredNet Tracking

Provide a JSON object that satisfies the schema "F-Droid Data metadata". Here are the required top‑level fields: Categories, License, Builds. 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>
{"$id":"https://github.com/bazelbuild/bazel-central-registry/modules/metadata.schema.json","title":"Metadata for a Bazel module","type":"object","properties":{"$schema":{"type":"string"},"homepage":{"type":"string"},"maintainers":{"description":"Individuals who can be notified when the module requires human attention","type":"array","minItems":1,"items":{"type":"object","properties":{"github":{"type":"string","description":"maintainer's github username","pattern":"^[-a-zA-Z0-9]*$"},"github_user_id":{"type":"integer","description":"maintainer's github user id","pattern":"^[0-9]*$"},"email":{"type":"string","description":"maintainer's email address"},"name":{"type":"string","description":"maintainer's name"},"do_not_notify":{"type":"boolean","description":"when set to true, this maintainer won't be notified by new PRs, but still has approver rights"}}}},"repository":{"type":"array","minItems":1,"items":{"description":"repository, typically in the form github:[github org]/[github repo]","type":"string"}},"versions":{"type":"array","items":{"description":"semver version","type":"string"}},"yanked_versions":{"type":"object","additionalProperties":true},"deprecated":{"type":"string","description":"The reason this module is deprecated. If set, the latest version can be yanked.","additionalProperties":true}},"additionalProperties":false,"required":["homepage","versions","maintainers","repository"]}
</schema>

[User] Provide a JSON object that satisfies the schema "Metadata for a Bazel module". Here are the required top‑level fields: homepage, versions, maintainers, repository. Return only the valid JSON object.

Metadata for a Bazel module

Individuals who can be notified when the module requires human attention

maintainer's github username

maintainer's github user id

maintainer's email address

maintainer's name

when set to true, this maintainer won't be notified by new PRs, but still has approver rights

repository, typically in the form github:[github org]/[github repo]

semver version

The reason this module is deprecated. If set, the latest version can be yanked.

homepage versions maintainers repository

Provide a JSON object that satisfies the schema "Metadata for a Bazel module". Here are the required top‑level fields: homepage, versions, maintainers, repository. 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/metaschema-draft-07-unofficial-strict.json","$ref":"#/definitions/root-entity","definitions":{"space-string":{"pattern":"^\\s+$|\\s{2,}"},"simple-type":{"type":["boolean","integer","null","number","string"]},"numeric-type-requirement":{"oneOf":[{"properties":{"type":{"const":"integer"}}},{"properties":{"type":{"const":"number"}}}]},"string-type-requirement":{"properties":{"type":{"const":"string"}}},"array-type-requirement":{"properties":{"type":{"const":"array"}}},"object-type-requirement":{"properties":{"type":{"const":"object"}}},"simple-type-requirement":{"properties":{"type":{"enum":["boolean","integer","null","number","string"]}}},"comment-property":{"description":"A comment of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html#id3","type":"string","minLength":1,"examples":["Don't remove until #issue is closed."]},"ref-property":{"description":"A reference of the current property or definition\nhttps://json-schema.org/understanding-json-schema/structuring.html#ref","type":"string","minLength":1,"pattern":"^#/definitions/.","examples":["#/definitions/reference"]},"title-property":{"description":"A title of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html?highlight=title#annotations","type":"string","minLength":1,"not":{"$ref":"#/definitions/space-string"},"examples":["image","image type"]},"description-property":{"description":"A description of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html?highlight=title#annotations","type":"string","minLength":1,"not":{"$ref":"#/definitions/space-string"},"pattern":"\\nhttps?://.","examples":["An image\nurl","An image type\nurl"]},"type-property":{"description":"A type of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/type.html","type":"string","enum":["number","integer","null","array","object","boolean","string"],"default":"string"},"minimum-property":{"description":"A minimum of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#range","type":"number","default":0},"maximum-property":{"description":"A maximum of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#range","type":"number","default":0},"exclusive-minimum-property":{"description":"An exclusive minimum of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#range","type":"number","default":0},"exclusive-maximum-property":{"description":"An exclusive maximum of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#range","type":"number","default":0},"multiple-of-property":{"description":"A multiple of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#multiples","type":"number","exclusiveMinimum":0,"default":1},"min-length-property":{"description":"A minimum length of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/string.html?highlight=minlength#length","type":"integer","minimum":0},"max-length-property":{"description":"A maximum length of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/string.html?highlight=minlength#length","type":"integer","minimum":0},"pattern-property":{"description":"A pattern of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/string.html?highlight=minlength#regular-expressions","type":"string","format":"regex","examples":["^.+=.*$","^--?\\w+","^#[0-9a-fA-F]{6}$"]},"format-property":{"description":"A format of the current property or definition\nhttps://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.7.2.1","type":"string","enum":["date","time","date-time","duration","regex","email","idn-email","hostname","idn-hostname","ipv4","ipv6","json-pointer","relative-json-pointer","uri","uri-reference","uri-template","uuid"]},"enum-property":{"description":"Valid values of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html?highlight=enum#enumerated-values","type":"array","uniqueItems":true,"minItems":1,"items":{"$ref":"#/definitions/simple-type","description":"A valid value of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html?highlight=enum#enumerated-values","examples":["success","failure"]}},"items-property":{"$ref":"#/definitions/sub-schema-entity","description":"Items of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/array.html?highlight=items#items"},"min-items-property":{"description":"A minimum item count of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/array.html?highlight=items#length","type":"integer","exclusiveMinimum":0,"default":1},"max-items-property":{"description":"A maximum item count of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/array.html?highlight=items#length","type":"integer","exclusiveMinimum":0,"default":1},"unique-items-property":{"description":"Whether items of the current property or definition should be unique\nhttps://json-schema.org/understanding-json-schema/reference/array.html?highlight=items#uniqueness","type":"boolean","default":false},"required-property":{"description":"Required sub-properties of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#required-properties","type":"array","uniqueItems":true,"minItems":1,"items":{"description":"A required sub-property of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#required-properties","type":"string","minLength":1},"minLength":1},"properties-property":{"description":"Sub-properties of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=properties#properties","type":"object","patternProperties":{".":{"$ref":"#/definitions/entity","description":"A sub-property of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=properties#properties"}},"additionalProperties":true},"pattern-properties-property":{"description":"Pattern sub-properties of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#pattern-properties","type":"object","properties":{".":{"$ref":"#/definitions/entity","description":"A pattern sub-property of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#pattern-properties"}},"patternProperties":{".":{"$ref":"#/definitions/entity","description":"A pattern sub-property of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#pattern-properties"}},"additionalProperties":true},"additional-properties-property":{"description":"Additional sub-properties of the current property or definition or whether to allow them\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#additional-properties","oneOf":[{"type":"boolean","const":false},{"$ref":"#/definitions/entity"}]},"min-properties-property":{"description":"A minimum count of sub-properties of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#size","type":"integer","minimum":1,"default":1},"max-properties-property":{"description":"A maximum count of sub-properties of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#size","type":"integer","minimum":1,"default":1},"const-property":{"$ref":"#/definitions/simple-type","description":"A constant of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html?highlight=const#constant-values"},"default-property":{"$ref":"#/definitions/simple-type","description":"A default of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html?highlight=default#annotations"},"examples-property":{"description":"Examples of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html?highlight=default#annotations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/simple-type","description":"An example of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/generic.html?highlight=default#annotations"},"minLength":1},"not-property":{"$ref":"#/definitions/sub-schema-entity","description":"A sub-schema should not match of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#not","minProperties":1},"any-of-property":{"description":"A requirement to match at least one sub-schema of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#anyof","type":"array","uniqueItems":true,"minItems":2,"items":{"$ref":"#/definitions/sub-schema-entity","description":"A sub-schema of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#anyof"}},"one-of-property":{"description":"A requirement to match at one sub-schema of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#oneof","type":"array","uniqueItems":true,"minItems":2,"items":{"$ref":"#/definitions/sub-schema-entity","description":"A sub-schema of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#oneof"}},"all-of-property":{"description":"A requirement to match all sub-schemas of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#allof","type":"array","uniqueItems":true,"minItems":2,"items":{"$ref":"#/definitions/sub-schema-entity","description":"A sub-schema of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#allof"}},"sub-schema-entity":{"$ref":"#/definitions/entity-dependencies","type":"object","properties":{"$comment":{"$ref":"#/definitions/comment-property"},"$ref":{"$ref":"#/definitions/ref-property"},"description":{"type":"string"},"id":{"type":"string"},"type":{"$ref":"#/definitions/type-property"},"minimum":{"$ref":"#/definitions/minimum-property"},"maximum":{"$ref":"#/definitions/maximum-property"},"exclusiveMinimum":{"$ref":"#/definitions/exclusive-minimum-property"},"exclusiveMaximum":{"$ref":"#/definitions/exclusive-maximum-property"},"multipleOf":{"$ref":"#/definitions/multiple-of-property"},"minLength":{"$ref":"#/definitions/min-length-property"},"maxLength":{"$ref":"#/definitions/max-length-property"},"pattern":{"$ref":"#/definitions/pattern-property"},"enum":{"$ref":"#/definitions/enum-property"},"items":{"$ref":"#/definitions/items-property"},"minItems":{"$ref":"#/definitions/min-items-property"},"maxItems":{"$ref":"#/definitions/max-items-property"},"uniqueItems":{"$ref":"#/definitions/unique-items-property"},"required":{"$ref":"#/definitions/required-property"},"properties":{"$ref":"#/definitions/properties-property"},"patternProperties":{"$ref":"#/definitions/pattern-properties-property"},"additionalProperties":{"$ref":"#/definitions/additional-properties-property"},"minProperties":{"$ref":"#/definitions/min-properties-property"},"maxProperties":{"$ref":"#/definitions/max-properties-property"},"const":{"$ref":"#/definitions/const-property"},"default":{"$ref":"#/definitions/default-property"},"examples":{"$ref":"#/definitions/examples-property"},"not":{"$ref":"#/definitions/not-property"},"anyOf":{"$ref":"#/definitions/any-of-property"},"oneOf":{"$ref":"#/definitions/one-of-property"},"allOf":{"$ref":"#/definitions/all-of-property"},"if":{"$ref":"#/definitions/if-property"},"then":{"$ref":"#/definitions/then-property"},"else":{"$ref":"#/definitions/else-property"}},"minProperties":1,"additionalProperties":true},"condition-entity":{"description":"A mapping from sub-property name to conditions of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else","type":"object","properties":{"$comment":{"$ref":"#/definitions/comment-property"},"$ref":{"$ref":"#/definitions/ref-property"},"type":{"$ref":"#/definitions/type-property"},"minimum":{"$ref":"#/definitions/minimum-property"},"maximum":{"$ref":"#/definitions/maximum-property"},"exclusiveMinimum":{"$ref":"#/definitions/exclusive-minimum-property"},"exclusiveMaximum":{"$ref":"#/definitions/exclusive-maximum-property"},"multipleOf":{"$ref":"#/definitions/multiple-of-property"},"minLength":{"$ref":"#/definitions/min-length-property"},"maxLength":{"$ref":"#/definitions/max-length-property"},"pattern":{"$ref":"#/definitions/pattern-property"},"format":{"$ref":"#/definitions/format-property"},"enum":{"$ref":"#/definitions/enum-property"},"items":{"$ref":"#/definitions/condition-entity"},"minItems":{"$ref":"#/definitions/min-items-property"},"maxItems":{"$ref":"#/definitions/max-items-property"},"uniqueItems":{"$ref":"#/definitions/unique-items-property"},"required":{"$ref":"#/definitions/required-property"},"properties":{"$ref":"#/definitions/properties-property"},"patternProperties":{"$ref":"#/definitions/pattern-properties-property"},"additionalProperties":{"$ref":"#/definitions/additional-properties-property"},"minProperties":{"$ref":"#/definitions/min-properties-property"},"maxProperties":{"$ref":"#/definitions/max-properties-property"},"const":{"$ref":"#/definitions/const-property"},"default":{"$ref":"#/definitions/default-property"}},"minProperties":1,"additionalProperties":true},"requirement-entity":{"description":"A mapping from sub-property name to requirements of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else","type":"object","properties":{"$comment":{"$ref":"#/definitions/comment-property"},"$ref":{"$ref":"#/definitions/ref-property"},"title":{"$ref":"#/definitions/title-property"},"description":{"$ref":"#/definitions/description-property"},"type":{"$ref":"#/definitions/type-property"},"minimum":{"$ref":"#/definitions/minimum-property"},"maximum":{"$ref":"#/definitions/maximum-property"},"exclusiveMinimum":{"$ref":"#/definitions/exclusive-minimum-property"},"exclusiveMaximum":{"$ref":"#/definitions/exclusive-maximum-property"},"multipleOf":{"$ref":"#/definitions/multiple-of-property"},"minLength":{"$ref":"#/definitions/min-length-property"},"maxLength":{"$ref":"#/definitions/max-length-property"},"pattern":{"$ref":"#/definitions/pattern-property"},"format":{"$ref":"#/definitions/format-property"},"enum":{"$ref":"#/definitions/enum-property"},"items":{"$ref":"#/definitions/requirement-entity"},"minItems":{"$ref":"#/definitions/min-items-property"},"maxItems":{"$ref":"#/definitions/max-items-property"},"uniqueItems":{"$ref":"#/definitions/unique-items-property"},"required":{"$ref":"#/definitions/required-property"},"properties":{"$ref":"#/definitions/properties-property"},"patternProperties":{"$ref":"#/definitions/pattern-properties-property"},"additionalProperties":{"$ref":"#/definitions/additional-properties-property"},"minProperties":{"$ref":"#/definitions/min-properties-property"},"maxProperties":{"$ref":"#/definitions/max-properties-property"},"default":{"$ref":"#/definitions/default-property"},"examples":{"$ref":"#/definitions/examples-property"}},"additionalProperties":true},"requirements":{"required":["properties"],"properties":{"properties":{"description":"A mapping from sub-property names to requirements of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else","type":"object","patternProperties":{".":{"$ref":"#/definitions/requirement-entity"}},"minProperties":1,"additionalProperties":true},"additionalProperties":{"$ref":"#/definitions/additional-properties-property"},"minProperties":{"$ref":"#/definitions/min-properties-property"},"maxProperties":{"$ref":"#/definitions/max-properties-property"}},"additionalProperties":true},"if-property":{"description":"A conditional header of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else","type":"object","required":["properties"],"properties":{"properties":{"description":"A mapping from sub-property names to conditions of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else","type":"object","patternProperties":{".":{"$ref":"#/definitions/condition-entity"}},"minProperties":1,"additionalProperties":true}},"additionalProperties":true},"then-property":{"$ref":"#/definitions/requirements","description":"A conditional branch of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else","type":"object"},"else-property":{"$ref":"#/definitions/requirements","description":"A conditional else branch of the current property or definition\nhttps://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else","type":"object"},"entity-dependencies":{"dependencies":{"$ref":{"required":[]},"minimum":{"$ref":"#/definitions/numeric-type-requirement"},"maximum":{"$ref":"#/definitions/numeric-type-requirement"},"exclusiveMinimum":{"$ref":"#/definitions/numeric-type-requirement"},"exclusiveMaximum":{"$ref":"#/definitions/numeric-type-requirement"},"multipleOf":{"$ref":"#/definitions/numeric-type-requirement"},"minLength":{"$ref":"#/definitions/string-type-requirement"},"maxLength":{"$ref":"#/definitions/string-type-requirement"},"pattern":{"$ref":"#/definitions/string-type-requirement"},"format":{"$ref":"#/definitions/string-type-requirement"},"enum":{"$ref":"#/definitions/simple-type-requirement"},"items":{"$ref":"#/definitions/array-type-requirement"},"minItems":{"$ref":"#/definitions/array-type-requirement"},"maxItems":{"$ref":"#/definitions/array-type-requirement"},"uniqueItems":{"$ref":"#/definitions/array-type-requirement"},"required":{"$ref":"#/definitions/object-type-requirement"},"properties":{"$ref":"#/definitions/object-type-requirement"},"patternProperties":{"$ref":"#/definitions/object-type-requirement"},"additionalProperties":{"$ref":"#/definitions/object-type-requirement"},"minProperties":{"$ref":"#/definitions/object-type-requirement"},"maxProperties":{"$ref":"#/definitions/object-type-requirement"},"if":["then"],"then":["if"],"else":["if","then"]}},"entity-requirements-and-dependencies":{"$ref":"#/definitions/entity-dependencies","required":["title","description","type"]},"entity":{"$ref":"#/definitions/entity-requirements-and-dependencies","type":"object","properties":{"$comment":{"$ref":"#/definitions/comment-property"},"$ref":{"$ref":"#/definitions/ref-property"},"title":{"$ref":"#/definitions/title-property"},"description":{"$ref":"#/definitions/description-property"},"type":{"$ref":"#/definitions/type-property"},"minimum":{"$ref":"#/definitions/minimum-property"},"maximum":{"$ref":"#/definitions/maximum-property"},"exclusiveMinimum":{"$ref":"#/definitions/exclusive-minimum-property"},"exclusiveMaximum":{"$ref":"#/definitions/exclusive-maximum-property"},"multipleOf":{"$ref":"#/definitions/multiple-of-property"},"minLength":{"$ref":"#/definitions/min-length-property"},"maxLength":{"$ref":"#/definitions/max-length-property"},"pattern":{"$ref":"#/definitions/pattern-property"},"format":{"$ref":"#/definitions/format-property"},"enum":{"$ref":"#/definitions/enum-property"},"items":{"$ref":"#/definitions/items-property"},"minItems":{"$ref":"#/definitions/min-items-property"},"maxItems":{"$ref":"#/definitions/max-items-property"},"uniqueItems":{"$ref":"#/definitions/unique-items-property"},"required":{"$ref":"#/definitions/required-property"},"properties":{"$ref":"#/definitions/properties-property"},"patternProperties":{"$ref":"#/definitions/pattern-properties-property"},"additionalProperties":{"$ref":"#/definitions/additional-properties-property"},"minProperties":{"$ref":"#/definitions/min-properties-property"},"maxProperties":{"$ref":"#/definitions/max-properties-property"},"const":{"$ref":"#/definitions/const-property"},"default":{"$ref":"#/definitions/default-property"},"examples":{"$ref":"#/definitions/examples-property"},"not":{"$ref":"#/definitions/not-property"},"anyOf":{"$ref":"#/definitions/any-of-property"},"oneOf":{"$ref":"#/definitions/one-of-property"},"allOf":{"$ref":"#/definitions/all-of-property"},"if":{"$ref":"#/definitions/if-property"},"then":{"$ref":"#/definitions/then-property"},"else":{"$ref":"#/definitions/else-property"}},"additionalProperties":true},"root-entity":{"$ref":"#/definitions/entity-requirements-and-dependencies","type":"object","properties":{"$schema":{"description":"A schema used to validate this JSON schema","type":"string","minLength":1,"examples":["http://json-schema.org/draft-04/schema#","http://json-schema.org/draft-07/schema#","https://www.schemastore.org/metaschema-draft-07-unofficial-strict.json"]},"$id":{"description":"An id of the current property or definition\nhttps://json-schema.org/learn/getting-started-step-by-step#create-a-schema-definition","type":"string","minLength":1,"not":{"$ref":"#/definitions/space-string"},"examples":["https://www.schemastore.org/schema-catalog.json"]},"$comment":{"$ref":"#/definitions/comment-property"},"$ref":{"$ref":"#/definitions/ref-property"},"$defs":{"description":"Definitions","type":"object","additionalProperties":{"$ref":"#/definitions/sub-schema-entity","description":"A definition"}},"definitions":{"description":"Definitions","type":"object","additionalProperties":{"$ref":"#/definitions/sub-schema-entity","description":"A definition"}},"title":{"$ref":"#/definitions/title-property"},"description":{"$ref":"#/definitions/description-property"},"type":{"$ref":"#/definitions/type-property"},"minimum":{"$ref":"#/definitions/minimum-property"},"maximum":{"$ref":"#/definitions/maximum-property"},"exclusiveMinimum":{"$ref":"#/definitions/exclusive-minimum-property"},"exclusiveMaximum":{"$ref":"#/definitions/exclusive-maximum-property"},"multipleOf":{"$ref":"#/definitions/multiple-of-property"},"minLength":{"$ref":"#/definitions/min-length-property"},"maxLength":{"$ref":"#/definitions/max-length-property"},"pattern":{"$ref":"#/definitions/pattern-property"},"format":{"$ref":"#/definitions/format-property"},"enum":{"$ref":"#/definitions/enum-property"},"items":{"$ref":"#/definitions/items-property"},"minItems":{"$ref":"#/definitions/min-items-property"},"maxItems":{"$ref":"#/definitions/max-items-property"},"uniqueItems":{"$ref":"#/definitions/unique-items-property"},"required":{"$ref":"#/definitions/required-property"},"properties":{"$ref":"#/definitions/properties-property"},"patternProperties":{"$ref":"#/definitions/pattern-properties-property"},"additionalProperties":{"$ref":"#/definitions/additional-properties-property"},"minProperties":{"$ref":"#/definitions/min-properties-property"},"maxProperties":{"$ref":"#/definitions/max-properties-property"},"const":{"$ref":"#/definitions/const-property"},"default":{"$ref":"#/definitions/default-property"},"examples":{"$ref":"#/definitions/examples-property"},"not":{"$ref":"#/definitions/not-property"},"anyOf":{"$ref":"#/definitions/any-of-property"},"oneOf":{"$ref":"#/definitions/one-of-property"},"allOf":{"$ref":"#/definitions/all-of-property"},"if":{"$ref":"#/definitions/if-property"},"then":{"$ref":"#/definitions/then-property"},"else":{"$ref":"#/definitions/else-property"}},"additionalProperties":true}},"description":"A schema\nhttps://json-schema.org/understanding-json-schema"}
</schema>

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

A comment of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html#id3

A reference of the current property or definition
https://json-schema.org/understanding-json-schema/structuring.html#ref

A title of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html?highlight=title#annotations

A description of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html?highlight=title#annotations

A type of the current property or definition
https://json-schema.org/understanding-json-schema/reference/type.html

number integer null array object boolean string

A minimum of the current property or definition
https://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#range

A maximum of the current property or definition
https://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#range

An exclusive minimum of the current property or definition
https://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#range

An exclusive maximum of the current property or definition
https://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#range

A multiple of the current property or definition
https://json-schema.org/understanding-json-schema/reference/numeric.html?highlight=minimum#multiples

A minimum length of the current property or definition
https://json-schema.org/understanding-json-schema/reference/string.html?highlight=minlength#length

A maximum length of the current property or definition
https://json-schema.org/understanding-json-schema/reference/string.html?highlight=minlength#length

A pattern of the current property or definition
https://json-schema.org/understanding-json-schema/reference/string.html?highlight=minlength#regular-expressions

A format of the current property or definition
https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.7.2.1

date time date-time duration regex email idn-email hostname idn-hostname ipv4 ipv6 json-pointer relative-json-pointer uri uri-reference uri-template uuid

Valid values of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html?highlight=enum#enumerated-values

A valid value of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html?highlight=enum#enumerated-values

Items of the current property or definition
https://json-schema.org/understanding-json-schema/reference/array.html?highlight=items#items

A minimum item count of the current property or definition
https://json-schema.org/understanding-json-schema/reference/array.html?highlight=items#length

A maximum item count of the current property or definition
https://json-schema.org/understanding-json-schema/reference/array.html?highlight=items#length

Whether items of the current property or definition should be unique
https://json-schema.org/understanding-json-schema/reference/array.html?highlight=items#uniqueness

Required sub-properties of the current property or definition
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#required-properties

A required sub-property of the current property or definition
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#required-properties

Sub-properties of the current property or definition
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=properties#properties

A sub-property of the current property or definition
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=properties#properties

Pattern sub-properties of the current property or definition
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#pattern-properties

A pattern sub-property of the current property or definition
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#pattern-properties

Additional sub-properties of the current property or definition or whether to allow them
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#additional-properties

A minimum count of sub-properties of the current property or definition
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#size

A maximum count of sub-properties of the current property or definition
https://json-schema.org/understanding-json-schema/reference/object.html?highlight=required#size

A constant of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html?highlight=const#constant-values

A default of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html?highlight=default#annotations

Examples of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html?highlight=default#annotations

An example of the current property or definition
https://json-schema.org/understanding-json-schema/reference/generic.html?highlight=default#annotations

A sub-schema should not match of the current property or definition
https://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#not

A requirement to match at least one sub-schema of the current property or definition
https://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#anyof

A sub-schema of the current property or definition
https://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#anyof

A requirement to match at one sub-schema of the current property or definition
https://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#oneof

A sub-schema of the current property or definition
https://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#oneof

A requirement to match all sub-schemas of the current property or definition
https://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#allof

A sub-schema of the current property or definition
https://json-schema.org/understanding-json-schema/reference/combining.html?highlight=anyof#allof

A mapping from sub-property name to conditions of the current property or definition
https://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else

A mapping from sub-property name to requirements of the current property or definition
https://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else

A mapping from sub-property names to requirements of the current property or definition
https://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else

A conditional header of the current property or definition
https://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else

A mapping from sub-property names to conditions of the current property or definition
https://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else

A conditional branch of the current property or definition
https://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else

A conditional else branch of the current property or definition
https://json-schema.org/understanding-json-schema/reference/conditionals.html?highlight=condition#if-then-else

A schema used to validate this JSON schema

An id of the current property or definition
https://json-schema.org/learn/getting-started-step-by-step#create-a-schema-definition

Definitions

A definition

Definitions

A definition

A schema
https://json-schema.org/understanding-json-schema

Provide a JSON object that satisfies the schema "metaschema-draft-07-unofficial-strict". 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/metatype.json","title":"Metatype configuration file schema","additionalProperties":false,"type":"object","definitions":{"path":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"typegraphLoaderConfig":{"type":"object","additionalProperties":false,"properties":{"include":{"$ref":"#/definitions/path","description":"A pattern or array of patterns to include."},"exclude":{"$ref":"#/definitions/path","description":"A pattern or array of patterns to exclude."}},"description":"Configuration for loading typegraph files."},"generatorConfigBase":{"type":"object","properties":{"typegraph_name":{"type":"string","description":"The name of the typegraph."},"typegraph_path":{"type":"string","description":"The target typegraph file path."},"path":{"type":"string","description":"The directory for the generated files."},"template_dir":{"type":"string","description":"The directory containing template files."}}},"rustGeneratorConfigBase":{"type":"object","properties":{"skip_cargo_toml":{"type":"boolean","description":"Whether to skip generating the `Cargo.toml` file."},"skip_lib_rs":{"type":"boolean","description":"Whether to skip generating the `lib.rs` file."},"crate_name":{"type":"string","description":"Generated crate name."}}},"clientTsGeneratorConfig":{"type":"object","properties":{"generator":{"const":"client_ts","description":"See: <https://metatype.dev/docs/reference/metagen#client_ts>."}}},"clientPyGeneratorConfig":{"type":"object","properties":{"generator":{"const":"client_py","description":"See: <https://metatype.dev/docs/reference/metagen#client_py>."}}},"clientRsGeneratorConfig":{"allOf":[{"type":"object","properties":{"generator":{"const":"client_rs","description":"See: <https://metatype.dev/docs/reference/metagen#client_rs>."}}},{"$ref":"#/definitions/rustGeneratorConfigBase"}]},"fdkTsGeneratorConfig":{"type":"object","properties":{"generator":{"const":"fdk_ts","description":"See: <https://metatype.dev/docs/reference/metagen#fdk_ts>."},"stubbed_runtimes":{"type":"array","items":{"type":"string"}},"exclude_client":{"type":"boolean","description":"Whether to generate metagen client code."}}},"fdkPyGeneratorConfig":{"type":"object","properties":{"generator":{"const":"fdk_py","description":"See: <https://metatype.dev/docs/reference/metagen#fdk_py>."},"exclude_client":{"type":"boolean","description":"Whether to generate metagen client code."}}},"fdkRsGeneratorConfig":{"allOf":[{"type":"object","properties":{"generator":{"const":"fdk_rs","description":"See: <https://metatype.dev/docs/reference/metagen#fdk_rs>."},"stubbed_runtimes":{"type":"array","items":{"type":"string"}},"exclude_client":{"type":"boolean","description":"Whether to generate metagen client code."}}},{"$ref":"#/definitions/rustGeneratorConfigBase"}]},"fdkSubGeneratorConfig":{"type":"object","properties":{"generator":{"const":"fdk_substantial"}}},"generatorConfig":{"allOf":[{"$ref":"#/definitions/generatorConfigBase"},{"oneOf":[{"$ref":"#/definitions/clientTsGeneratorConfig"},{"$ref":"#/definitions/clientPyGeneratorConfig"},{"$ref":"#/definitions/clientRsGeneratorConfig"},{"$ref":"#/definitions/fdkTsGeneratorConfig"},{"$ref":"#/definitions/fdkPyGeneratorConfig"},{"$ref":"#/definitions/fdkRsGeneratorConfig"},{"$ref":"#/definitions/fdkSubGeneratorConfig"}]}]}},"properties":{"typegates":{"type":"object","description":"Configuration for typegate nodes. See: <https://metatype.dev/docs/reference/meta-cli/configuration-file#typegate-configuration>.","additionalProperties":{"type":"object","description":"Individual typegate node configuration.","additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The base URL of the typegate server, example: <http://localhost:7890>."},"prefix":{"type":"string","description":"A prefix for typegraphs."},"username":{"type":"string","description":"Administrator username for the typegate."},"password":{"type":"string","description":"Administrator password for the typegate."},"env":{"type":"object","description":"Environment variables for the typegate.","additionalProperties":{"type":"string"}},"secrets":{"type":"object","description":"Secrets used for configuring runtimes within the typegraphs. See: <https://metatype.dev/docs/reference/meta-cli/configuration-file#named-secrets>.","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}}}},"typegraphs":{"type":"object","additionalProperties":false,"description":"Typegraph deployment configurations. See: <https://metatype.dev/docs/reference/typegraph>.","properties":{"python":{"$ref":"#/definitions/typegraphLoaderConfig","description":"Configuration for Python typegraphs."},"javascript":{"$ref":"#/definitions/typegraphLoaderConfig","description":"Configuration for JavaScript typegraphs."},"typescript":{"$ref":"#/definitions/typegraphLoaderConfig","description":"Configuration for TypeScript typegraphs."},"materializers":{"type":"object","additionalProperties":false,"description":"Materializer configurations for typegraphs.","properties":{"prisma":{"type":"object","additionalProperties":false,"description":"Prisma materializer configuration.","properties":{"migrations_path":{"type":"string","description":"The directory for storing Prisma migration files."}}}}}}},"metagen":{"type":"object","additionalProperties":false,"description":"Metagen configurations. See: <https://metatype.dev/docs/reference/metagen>.","properties":{"targets":{"type":"object","description":"Code generation target configurations.","additionalProperties":{"type":"array","items":{"$ref":"#/definitions/generatorConfig"}}}}}}}
</schema>

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

Metatype configuration file schema

A pattern or array of patterns to include.

A pattern or array of patterns to exclude.

Configuration for loading typegraph files.

The name of the typegraph.

The target typegraph file path.

The directory for the generated files.

The directory containing template files.

Whether to skip generating the `Cargo.toml` file.

Whether to skip generating the `lib.rs` file.

Generated crate name.

See: <https://metatype.dev/docs/reference/metagen#client_ts>.

See: <https://metatype.dev/docs/reference/metagen#client_py>.

See: <https://metatype.dev/docs/reference/metagen#client_rs>.

See: <https://metatype.dev/docs/reference/metagen#fdk_ts>.

Whether to generate metagen client code.

See: <https://metatype.dev/docs/reference/metagen#fdk_py>.

See: <https://metatype.dev/docs/reference/metagen#fdk_rs>.

Configuration for typegate nodes. See: <https://metatype.dev/docs/reference/meta-cli/configuration-file#typegate-configuration>.

Individual typegate node configuration.

The base URL of the typegate server, example: <http://localhost:7890>.

A prefix for typegraphs.

Administrator username for the typegate.

Administrator password for the typegate.

Environment variables for the typegate.

Secrets used for configuring runtimes within the typegraphs. See: <https://metatype.dev/docs/reference/meta-cli/configuration-file#named-secrets>.

Typegraph deployment configurations. See: <https://metatype.dev/docs/reference/typegraph>.

Configuration for Python typegraphs.

Configuration for JavaScript typegraphs.

Configuration for TypeScript typegraphs.

Materializer configurations for typegraphs.

Prisma materializer configuration.

The directory for storing Prisma migration files.

Metagen configurations. See: <https://metatype.dev/docs/reference/metagen>.

Code generation target configurations.

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