[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/publiccode.json","additionalProperties":{"description":"While the standard is structured to be meaningful on an international level, there are additional information that can be added that makes sense in specific countries, such as declaring compliance with local laws or regulations. The provided extension mechanism is the usage of country-specific sections.","type":"object","additionalProperties":true,"required":["countryExtensionVersion"],"properties":{"countryExtensionVersion":{"description":"This key specifies the version to which the current extension schema adheres to, for forward compatibility.\n\nPlease note how the value of this key is independent from the top-level publiccodeYmlVersion one (see The Standard (core)). In such a way, the extensions schema versioning is independent both from the core version of the schema and from every other Country.","type":"string"}}},"definitions":{"Contact":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"description":"This key contains the full name of one of the technical contacts. It must be a real person; do NOT populate this key with generic contact information, company departments, associations, etc.","type":"string"},"email":{"description":"This key contains the e-mail address of the technical contact. It must be an email address of where the technical contact can be directly reached; do NOT populate this key with mailing-lists or generic contact points like \"info@acme.inc\". The e-mail address must not be obfuscated. To improve resistance against e-mail collection, use \\x64 to replace @, as allowed by the YAML specification.","type":"string","format":"email"},"phone":{"description":"phone number (with international prefix). This has to be a string.","type":"string"},"affiliation":{"description":"This key contains an explicit affiliation information for the technical contact. In case of multiple maintainers, this can be used to create a relation between each technical contact and each maintainer entity. It can contain for instance a company name, an association name, etc.","type":"string"}}},"Contractor":{"type":"object","additionalProperties":false,"required":["name","until"],"properties":{"name":{"description":"The name of the contractor, whether it's a company or a physical person.","type":"string"},"until":{"description":"This is a date (YYYY-MM-DD). This key must contain the date at which the maintenance is going to end. In case of community maintenance, the value should not be more than 2 years in the future, and thus will need to be regularly updated as the community continues working on the project.","type":"string","format":"date"},"email":{"description":"This key contains the e-mail address of the technical contact. It must be an email address of where the technical contact can be directly reached; do NOT populate this key with mailing-lists or generic contact points like \"info@acme.inc\". The e-mail address must not be obfuscated. To improve resistance against e-mail collection, use \\x64 to replace @, as allowed by the YAML specification.","type":"string","format":"email"},"website":{"description":"This key points to the maintainer website. It can either point to the main institutional website, or to a more project-specific page or website.","type":"string","format":"uri"}}},"Dependency":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"description":"The name of the dependency (e.g. MySQL, NFC Reader)","type":"string"},"versionMin":{"description":"The first compatible version","oneOf":[{"type":"number"},{"type":"string"}]},"versionMax":{"description":"The latest compatible version","oneOf":[{"type":"number"},{"type":"string"}]},"version":{"description":"The only major version for which the software is compatible. It assumes compatibility with all patches and bugfixes later applied to this version.","oneOf":[{"type":"number"},{"type":"string"}]},"optional":{"description":"Whether the dependency is optional or mandatory","type":"boolean"}}}},"description":"publiccode.yml is a metadata standard for repositories containing software developed or acquired by the Public Administration, aimed at making them easily discoverabile and thus reusable by other entities.\n\nBy including a publiccode.yml file in the root of a repository, and populating it with information about the software, technicians and civil servants can evaluate it. Automatic indexing tools can also be built, since the format is easily readable by both humans and machines.\n\npubliccode.yml is mandatory for all public software developed in Italy, according to the national guidelines: this enables the Developers Italia crawler to build the national software catalog. The standard is designed to be interoperable internationally, thus the country-specific keys are separated by the core part and are defined in specific sections that each government can rule.","properties":{"publiccodeYmlVersion":{"description":"This key specifies the version to which the current publiccode.yml adheres to, for forward compatibility.","type":"string"},"name":{"description":"This key contains the name of the software. It contains the (short) public name of the product, which can be localised in the specific localisation section. It should be the name most people usually refer to the software. In case the software has both an internal \"code\" name and a commercial name, use the commercial name.","type":"string"},"applicationSuite":{"description":"This key contains the name of the \"suite\" to which the software belongs.","type":"string"},"url":{"description":"A unique identifier for this software. This string must be a URL to the source code repository (git, svn, \u2026) in which the software is published. If the repository is available under multiple protocols, prefer HTTP/HTTPS URLs which don't require user authentication.\n\nForks created for the purpose of contributing upstream should not modify this file; this helps software parsing publiccode.yml to immediately skip technical forks. On the contrary, a complete fork that is meant to be maintained separately from the original software should modify this line, to give themselves the status of a different project.\n\n","type":"string","format":"uri"},"landingURL":{"description":"If the url parameter does not serve a human readable or browsable page, but only serves source code to a source control client, with this key you have an option to specify a landing page. This page, ideally, is where your users will land when they will click a button labeled something like \"Go to the application source code\". In case the product provides an automated graphical installer, this URL can point to a page which contains a reference to the source code but also offers the download of such an installer.","type":"string","format":"uri"},"isBasedOn":{"description":"In case this software is a variant or a fork of another software, which might or might not contain a publiccode.yml file, this key will contain the url of the original project(s).\n\nThe existence of this key identifies the fork as a software variant, descending from the specified repositories.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"softwareVersion":{"description":"This key contains the latest stable version number of the software. The version number is a string that is not meant to be interpreted and parsed but just displayed; parsers should not assume semantic versioning or any other specific version format.\n\nThe key can be omitted if the software is currently in initial development and has never been released yet.","type":"string"},"releaseDate":{"description":"This key contains the date at which the latest version was released. This date is mandatory if the software has been released at least once and thus the version number is present.","type":"string","format":"date"},"logo":{"description":"This key contains the path to the logo of the software. Logos should be in vector format; raster formats are only allowed as a fallback. In this case, they should be transparent PNGs, minimum 1000px of width. The key value can be the relative path to the file starting from the root of the repository, or it can be an absolute URL pointing to the logo in raw version. In both cases, the file must reside inside the same repository where the publiccode.yml file is stored.","type":"string"},"monochromeLogo":{"description":"A monochromatic (black) logo. The logo should be in vector format; raster formats are only allowed as a fallback. In this case, they should be transparent PNGs, minimum 1000px of width. The key value can be the relative path to the file starting from the root of the repository, or it can be an absolute URL pointing to the logo in raw version. In both cases, the file must reside inside the same repository where the publiccode.yml file is stored.","type":"string"},"inputTypes":{"description":"A list of Media Types (MIME Types) as mandated in RFC 6838 which the application can handle as input.\n\nIn case the software does not support any input, you can skip this field or use application/x.empty.","type":"array","items":{"type":"string"}},"outputTypes":{"description":"A list of Media Types (MIME Types) as mandated in RFC 6838 which the application can handle as output.\n\nIn case the software does not support any output, you can skip this field or use application/x.empty.","type":"array","items":{"type":"string"}},"platforms":{"description":"This key specifies which platform the software runs on. It is meant to describe the platforms that users will use to access and operate the software, rather than the platform the software itself runs on.\n\nUse the predefined values if possible. If the software runs on a platform for which a predefined value is not available, a different value can be used.","type":"array","items":{"type":"string"}},"categories":{"description":"A list of words that can be used to describe the software and can help building catalogs of open software.","type":"array","items":{"enum":["accounting","agile-project-management","applicant-tracking","application-development","appointment-scheduling","backup","billing-and-invoicing","blog","budgeting","business-intelligence","business-process-management","cad","call-center-management","cloud-management","collaboration","communications","compliance-management","contact-management","content-management","crm","customer-service-and-support","data-analytics","data-collection","data-visualization","design","design-system","digital-asset-management","digital-citizenship","document-management","donor-management","e-commerce","e-signature","educational-content","email-management","email-marketing","employee-management","enterprise-project-management","enterprise-social-networking","erp","event-management","facility-management","feedback-and-reviews-management","financial-reporting","fleet-management","fundraising","gamification","geographic-information-systems","grant-management","graphic-design","help-desk","hr","ide","identity-management","instant-messaging","integrated-library-system","inventory-management","it-asset-management","it-development","it-management","it-security","it-service-management","knowledge-management","learning-management-system","marketing","mind-mapping","mobile-marketing","mobile-payment","network-management","office","online-booking","online-community","payment-gateway","payroll","predictive-analysis","procurement","productivity-suite","project-collaboration","project-management","property-management","real-estate-management","regulations-and-directives","remote-support","resource-management","sales-management","seo","service-desk","social-media-management","survey","talent-management","task-management","taxes-management","test-management","time-management","time-tracking","translation","video-conferencing","video-editing","visitor-management","voip","warehouse-management","web-collaboration","web-conferencing","website-builder","whistleblowing","workflow-management"]}},"usedBy":{"description":"A list of the names of prominent public administrations (that will serve as \"testimonials\") that are currently known to the software maintainer to be using this software.\n\nParsers are encouraged to enhance this list also with other information that can obtain independently; for instance, a fork of a software, owned by an administration, could be used as a signal of usage of the software.","type":"array","items":{"type":"string"}},"roadmap":{"description":"A link to a public roadmap of the software.","type":"string","format":"uri"},"developmentStatus":{"enum":["concept","development","beta","stable","obsolete"]},"softwareType":{"enum":["standalone/mobile","standalone/iot","standalone/desktop","standalone/web","standalone/backend","standalone/other","addon","library","configurationFiles"]},"intendedAudience":{"type":"object","additionalProperties":false,"properties":{"countries":{"description":"This key explicitly includes certain countries in the intended audience, i.e. the software explicitly claims compliance with specific processes, technologies or laws. All countries are specified using lowercase ISO 3166-1 alpha-2 two-letter country codes.","type":"array","items":{"type":"string"}},"unsupportedCountries":{"description":"This key explicitly marks countries as NOT supported. This might be the case if there is a conflict between how software is working and a specific law, process or technology. All countries are specified using lowercase ISO 3166-1 alpha-2 two-letter country codes.","type":"array","items":{"type":"string"}},"scope":{"description":"This key contains a list of tags related to the field of application of the software.","type":"array","items":{"enum":["agriculture","culture","defence","education","emergency-services","employment","energy","environment","finance-and-economic-development","foreign-affairs","government","healthcare","infrastructures","justice","local-authorities","manufacturing","research","science-and-technology","security","society","sport","tourism","transportation","welfare"]}}}},"description":{"description":"This section contains a general description of the software. Parsers can use this section for instance to create a web page describing the software.,\n\nNote: since all the strings contained in this section are user-visible and written in a specific language, you must specify the language you are editing the text in (using the IETF BCP 47 specifications) by creating a sub-section with that name. The primary language subtag cannot be omitted, as mandated by the BCP 47.","type":"object","additionalProperties":{"type":"object","additionalProperties":false,"required":["shortDescription"],"properties":{"localisedName":{"description":"This key is an opportunity to localise the name in a specific language. It contains the (short) public name of the product. It should be the name most people usually refer to the software. In case the software has both an internal \"code\" name and a commercial name, use the commercial name.","type":"string"},"genericName":{"description":"This key is the \"Generic name\", which refers to the specific category to which the software belongs. You can usually find the generic name in the presentation of the software, when you write: \"Software xxx is a yyy\". Notable examples include \"Text Editor\", \"Word Processor\", \"Web Browser\", \"Chat\" and so on\u2026 The generic name can be up to 35 characters long.","type":"string","maxLength":35},"shortDescription":{"description":"This key contains a short description of the software. It should be a single line containing a single sentence. Maximum 150 characters are allowed.","type":"string","maxLength":150},"longDescription":{"description":"This key contains a longer description of the software, between 500 and 10000 chars. It is meant to provide an overview of the capabilities of the software for a potential user. The audience for this text should be that of users of the software, not developers. You can think of this text as the description of the software that would be in its website (if the software had one).\n\nThis description can contain some basic markdown: *italic*, **bold**, bullet points and [links](#).","type":"string","minLength":150,"maxLength":10000},"documentation":{"description":"This key contains a reference to the user-level (not developer-level) documentation of the software. The value must be a URL to a hosted version of the documentation.\n\nIt is suggested that the URL points to a hosted version of the documentation that is immediately readable through a common web browser in both desktop and mobile format. The documentation should be rendered in HTML and browsable like a website (with a navigation index, a search bar, etc.).\n\nIf the documentation is instead available only as a document, put a direct view/download link as URL in this key. You should commit the document as part of the source code repository, and then link to it using the code hosting source browser URL (e.g.: GitHub URL to the file). Prefer using open formats like PDF or ODT for maximum interoperability.\n\nWhichever the format for the documentation, remember to make its source files available under an open license, possibly by committing them as part of the repository itself.","type":"string","format":"uri"},"apiDocumentation":{"description":"This key contains a reference to the API documentation of the software. The value must be a URL to a hosted version of the documentation.\n\nIt is suggested that the URL points to a hosted version of the documentation that is immediately readable through a common web browser. The documentation should be rendered in HTML and browsable like a website (with a navigation index, a search bar, etc.), and if there is a reference or test deployment, possibly offer an interactive interface (e.g. Swagger).\n\nIf the documentation is instead available only as a document, put a direct view/download link as URL in this key. You should commit the document as part of the source code repository, and then link to it using the code hosting source browser URL (e.g.: GitHub URL to the file). Prefer using open formats like PDF or ODT for maximum interoperability.\n\nWhichever the format for the documentation, remember to make its source files available under an open license, possibly by committing them as part of the repository itself.","type":"string","format":"uri"},"features":{"description":"This key contains a list of software features, describing what capabilities the software allows to do. The audience for this text should be that of public decision makers who will be commissioning the software. The features should thus not target developers; instead of listing technical features referring to implementation details, prefer listing user-visible functionalities of the software.\n\nWhile the key is mandatory, there is no mandatory minimum or maximum number of features that should be listed in this key. Each feature must use a maximum of 100 characters.\n\nThe suggested number of features to list is between 5 and 20, depending on the software size and complexity. There is no need for exhaustiveness, as users can always read the documentation for additional information.","type":"array","items":{"type":"string"}},"screenshots":{"description":"This key contains one or multiple paths to files showing screenshots of the software. They are meant to give a quick idea on how the software looks like and how it works. The key value can be the relative path to the file starting from the root of the repository, or it can be an absolute URL pointing to the screenshot in raw version. In both cases, the file must reside inside the same repository where the publiccode.yml file is stored.","type":"array","items":{"type":"string"}},"videos":{"description":"This key contains one or multiple URLs of videos showing how the software works. Like screenshots, videos should be used to give a quick overview on how the software looks like and how it works. Videos must be hosted on a video sharing website that supports the oEmbed standard; popular options are YouTube and Vimeo.\n\nSince videos are an integral part of the documentation, it is recommended to publish them with an open license.","type":"array","items":{"type":"string"}},"awards":{"description":"A list of awards won by the software.","type":"array","items":{"type":"string"}}}}},"legal":{"type":"object","additionalProperties":false,"required":["license"],"properties":{"license":{"description":"This string describes the license under which the software is distributed. The string must contain a valid SPDX expression, referring to one (or multiple) open-source license. Please refer to the SPDX documentation for further information.","type":"string"},"mainCopyrightOwner":{"description":"This string describes the entity that owns the copyright on \"most\" of the code in the repository. Normally, this is the line that is reported with the copyright symbol at the top of most files in the repo.\n\nIt is possible to list multiple owners if required so, using an English sentence. It is also possible to informally refer to a community of group of people like \"Linus Torvalds and all Linux contributors\".\n\nIn case it is not possible to name a main copyright owner, it is possible to omit this key; in those cases, if the repo has a authors file, you can point to it through legal/authorsFile.","type":"string"},"repoOwner":{"description":"This string describes the entity that owns this repository; this might or might not be the same entity who owns the copyright on the code itself. For instance, in case of a fork of the original software, the repoOwner is probably different from the mainCopyrightOwner.","type":"string"},"authorsFile":{"description":"Some open-source software adopt a convention of identify the copyright holders through a file that lists all the entities that own the copyright. This is common in projects strongly backed by a community where there are many external contributors and no clear single/main copyright owner. In such cases, this key can be used to refer to the authors file, using a path relative to the root of the repository.","type":"string"}}},"maintenance":{"description":"This section provides information on the maintenance status of the software, useful to evaluate whether the software is actively developed or not.","type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"description":"This key describes how the software is currently maintained.","enum":["internal","contract","community","none"]},"contractors":{"description":"This key describes the entity or entities, if any, that are currently contracted for maintaining the software. They can be companies, organizations, or other collective names.","type":"array","items":{"$ref":"#/definitions/Contractor"}},"contacts":{"description":"One or more contacts maintaining this software.\n\nThis key describes the technical people currently responsible for maintaining the software. All contacts need to be a physical person, not a company or an organisation. If somebody is acting as a representative of an institution, it must be listed within the affiliation of the contact.\n\nIn case of a commercial agreement (or a chain of such agreements), specify the final entities actually contracted to deliver the maintenance. Do not specify the software owner unless it is technically involved with the maintenance of the product as well.","type":"array","items":{"$ref":"#/definitions/Contact"}}}},"localisation":{"description":"This section provides an overview of the localization features of the software.","type":"object","additionalProperties":false,"required":["localisationReady","availableLanguages"],"properties":{"localisationReady":{"description":"If yes, the software has infrastructure in place or is otherwise designed to be multilingual. It does not need to be available in more than one language.","type":"boolean"},"availableLanguages":{"description":"If present, this is the list of languages in which the software is available. Of course, this list will contain at least one language. The primary language subtag cannot be omitted, as mandated by the BCP 47.","type":"array","items":{"type":"string"}}}},"dependsOn":{"description":"This section provides an overview on the system-level dependencies required to install and use this software.\n\nNOTE: do not list dependencies at the source code level (e.g.: software libraries being used), and focus only on runtime and/or system-level dependencies that must be installed and maintained separately. For instance, a database is a good example of such dependencies.","type":"object","additionalProperties":false,"properties":{"open":{"description":"This key contains a list of runtime dependencies that are distributed under an open-source license.","type":"array","items":{"$ref":"#/definitions/Dependency"}},"proprietary":{"description":"This key contains a list of runtime dependencies that are distributed under a proprietary license.","type":"array","items":{"$ref":"#/definitions/Dependency"}},"hardware":{"description":"This key contains a list of hardware dependencies that must be owned to use the software.","type":"array","items":{"$ref":"#/definitions/Dependency"}}}},"it":{"type":"object","additionalProperties":false,"required":["countryExtensionVersion"],"properties":{"countryExtensionVersion":{"description":"This key specifies the version to which the current extension schema adheres to, for forward compatibility.\n\nPlease note how the value of this key is independent from the top-level publiccodeYmlVersion one (see The Standard (core)). In such a way, the extensions schema versioning is independent both from the core version of the schema and from every other Country.","type":"string"},"conforme":{"description":"This section contains the keys for auto-declaring the compliance with the current legislation, with respect to the following sections. Not including these keys implies that the compliance is not known or not declared.","type":"object","additionalProperties":false,"properties":{"lineeGuidaDesign":{"description":"If present and set to true, the software is compliant with the Italian accessibility laws (L. 4/2004), as further explained in the linee guida di design (Italian language).","type":"boolean"},"modelloInteroperabilita":{"description":"If present and set to true, the software is compliant with the linee guida sull'interoperabilit\u00e0.\n\nRegulatory reference: Art. 73 del CAD (Italian language).","type":"boolean"},"misureMinimeSicurezza":{"description":"If present and set to true, the software is compliant with the Misure minime di sicurezza ICT per le Pubbliche amministrazioni (Italian language).","type":"boolean"},"gdpr":{"description":"If present and set to true, the software is compliant with the Misure minime di sicurezza ICT per le Pubbliche amministrazioni (Italian language).","type":"boolean"}}},"piattaforme":{"type":"object","additionalProperties":false,"properties":{"spid":{"description":"If present and set to true, the software interfaces with SPID - il Sistema Pubblico di Identit\u00e0 Digitale.","type":"boolean"},"cie":{"description":"If present and set to true, the software interfaces with the Italian electronic ID card (Carta di Identit\u00e0 Elettronica).","type":"boolean"},"anpr":{"description":"If present and set to true, the software interfaces with ANPR.","type":"boolean"},"pagopa":{"description":"If present and set to true, the software interfaces with pagoPA.","type":"boolean"},"io":{"description":"If present and set to true, the software interfaces with IO app (https://io.italia.it) ","type":"boolean"}}},"riuso":{"type":"object","additionalProperties":false,"properties":{"codiceIPA":{"description":"This key represents the administration code inside the Public Administration index (codice IPA).","type":"string"}}}}}},"required":["publiccodeYmlVersion","name","url","platforms","categories","developmentStatus","softwareType","description","legal","maintenance","localisation"],"title":"JSON schema for publiccode.yml","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for publiccode.yml". Here are the required top‑level fields: publiccodeYmlVersion, name, url, platforms, categories, developmentStatus, softwareType, description, legal, maintenance, localisation. Return only the valid JSON object.

While the standard is structured to be meaningful on an international level, there are additional information that can be added that makes sense in specific countries, such as declaring compliance with local laws or regulations. The provided extension mechanism is the usage of country-specific sections.

This key specifies the version to which the current extension schema adheres to, for forward compatibility.

Please note how the value of this key is independent from the top-level publiccodeYmlVersion one (see The Standard (core)). In such a way, the extensions schema versioning is independent both from the core version of the schema and from every other Country.

This key contains the full name of one of the technical contacts. It must be a real person; do NOT populate this key with generic contact information, company departments, associations, etc.

This key contains the e-mail address of the technical contact. It must be an email address of where the technical contact can be directly reached; do NOT populate this key with mailing-lists or generic contact points like "info@acme.inc". The e-mail address must not be obfuscated. To improve resistance against e-mail collection, use \x64 to replace @, as allowed by the YAML specification.

phone number (with international prefix). This has to be a string.

This key contains an explicit affiliation information for the technical contact. In case of multiple maintainers, this can be used to create a relation between each technical contact and each maintainer entity. It can contain for instance a company name, an association name, etc.

The name of the contractor, whether it's a company or a physical person.

This is a date (YYYY-MM-DD). This key must contain the date at which the maintenance is going to end. In case of community maintenance, the value should not be more than 2 years in the future, and thus will need to be regularly updated as the community continues working on the project.

This key points to the maintainer website. It can either point to the main institutional website, or to a more project-specific page or website.

The name of the dependency (e.g. MySQL, NFC Reader)

The first compatible version

The latest compatible version

The only major version for which the software is compatible. It assumes compatibility with all patches and bugfixes later applied to this version.

Whether the dependency is optional or mandatory

publiccode.yml is a metadata standard for repositories containing software developed or acquired by the Public Administration, aimed at making them easily discoverabile and thus reusable by other entities.

By including a publiccode.yml file in the root of a repository, and populating it with information about the software, technicians and civil servants can evaluate it. Automatic indexing tools can also be built, since the format is easily readable by both humans and machines.

publiccode.yml is mandatory for all public software developed in Italy, according to the national guidelines: this enables the Developers Italia crawler to build the national software catalog. The standard is designed to be interoperable internationally, thus the country-specific keys are separated by the core part and are defined in specific sections that each government can rule.

This key specifies the version to which the current publiccode.yml adheres to, for forward compatibility.

This key contains the name of the software. It contains the (short) public name of the product, which can be localised in the specific localisation section. It should be the name most people usually refer to the software. In case the software has both an internal "code" name and a commercial name, use the commercial name.

This key contains the name of the "suite" to which the software belongs.

A unique identifier for this software. This string must be a URL to the source code repository (git, svn, …) in which the software is published. If the repository is available under multiple protocols, prefer HTTP/HTTPS URLs which don't require user authentication.

Forks created for the purpose of contributing upstream should not modify this file; this helps software parsing publiccode.yml to immediately skip technical forks. On the contrary, a complete fork that is meant to be maintained separately from the original software should modify this line, to give themselves the status of a different project.

If the url parameter does not serve a human readable or browsable page, but only serves source code to a source control client, with this key you have an option to specify a landing page. This page, ideally, is where your users will land when they will click a button labeled something like "Go to the application source code". In case the product provides an automated graphical installer, this URL can point to a page which contains a reference to the source code but also offers the download of such an installer.

In case this software is a variant or a fork of another software, which might or might not contain a publiccode.yml file, this key will contain the url of the original project(s).

The existence of this key identifies the fork as a software variant, descending from the specified repositories.

This key contains the latest stable version number of the software. The version number is a string that is not meant to be interpreted and parsed but just displayed; parsers should not assume semantic versioning or any other specific version format.

The key can be omitted if the software is currently in initial development and has never been released yet.

This key contains the date at which the latest version was released. This date is mandatory if the software has been released at least once and thus the version number is present.

This key contains the path to the logo of the software. Logos should be in vector format; raster formats are only allowed as a fallback. In this case, they should be transparent PNGs, minimum 1000px of width. The key value can be the relative path to the file starting from the root of the repository, or it can be an absolute URL pointing to the logo in raw version. In both cases, the file must reside inside the same repository where the publiccode.yml file is stored.

A monochromatic (black) logo. The logo should be in vector format; raster formats are only allowed as a fallback. In this case, they should be transparent PNGs, minimum 1000px of width. The key value can be the relative path to the file starting from the root of the repository, or it can be an absolute URL pointing to the logo in raw version. In both cases, the file must reside inside the same repository where the publiccode.yml file is stored.

A list of Media Types (MIME Types) as mandated in RFC 6838 which the application can handle as input.

In case the software does not support any input, you can skip this field or use application/x.empty.

A list of Media Types (MIME Types) as mandated in RFC 6838 which the application can handle as output.

In case the software does not support any output, you can skip this field or use application/x.empty.

This key specifies which platform the software runs on. It is meant to describe the platforms that users will use to access and operate the software, rather than the platform the software itself runs on.

Use the predefined values if possible. If the software runs on a platform for which a predefined value is not available, a different value can be used.

A list of words that can be used to describe the software and can help building catalogs of open software.

accounting agile-project-management applicant-tracking application-development appointment-scheduling backup billing-and-invoicing blog budgeting business-intelligence business-process-management cad call-center-management cloud-management collaboration communications compliance-management contact-management content-management crm customer-service-and-support data-analytics data-collection data-visualization design design-system digital-asset-management digital-citizenship document-management donor-management e-commerce e-signature educational-content email-management email-marketing employee-management enterprise-project-management enterprise-social-networking erp event-management facility-management feedback-and-reviews-management financial-reporting fleet-management fundraising gamification geographic-information-systems grant-management graphic-design help-desk hr ide identity-management instant-messaging integrated-library-system inventory-management it-asset-management it-development it-management it-security it-service-management knowledge-management learning-management-system marketing mind-mapping mobile-marketing mobile-payment network-management office online-booking online-community payment-gateway payroll predictive-analysis procurement productivity-suite project-collaboration project-management property-management real-estate-management regulations-and-directives remote-support resource-management sales-management seo service-desk social-media-management survey talent-management task-management taxes-management test-management time-management time-tracking translation video-conferencing video-editing visitor-management voip warehouse-management web-collaboration web-conferencing website-builder whistleblowing workflow-management

A list of the names of prominent public administrations (that will serve as "testimonials") that are currently known to the software maintainer to be using this software.

Parsers are encouraged to enhance this list also with other information that can obtain independently; for instance, a fork of a software, owned by an administration, could be used as a signal of usage of the software.

A link to a public roadmap of the software.

concept development beta stable obsolete

standalone/mobile standalone/iot standalone/desktop standalone/web standalone/backend standalone/other addon library configurationFiles

This key explicitly includes certain countries in the intended audience, i.e. the software explicitly claims compliance with specific processes, technologies or laws. All countries are specified using lowercase ISO 3166-1 alpha-2 two-letter country codes.

This key explicitly marks countries as NOT supported. This might be the case if there is a conflict between how software is working and a specific law, process or technology. All countries are specified using lowercase ISO 3166-1 alpha-2 two-letter country codes.

This key contains a list of tags related to the field of application of the software.

agriculture culture defence education emergency-services employment energy environment finance-and-economic-development foreign-affairs government healthcare infrastructures justice local-authorities manufacturing research science-and-technology security society sport tourism transportation welfare

This section contains a general description of the software. Parsers can use this section for instance to create a web page describing the software.,

Note: since all the strings contained in this section are user-visible and written in a specific language, you must specify the language you are editing the text in (using the IETF BCP 47 specifications) by creating a sub-section with that name. The primary language subtag cannot be omitted, as mandated by the BCP 47.

This key is an opportunity to localise the name in a specific language. It contains the (short) public name of the product. It should be the name most people usually refer to the software. In case the software has both an internal "code" name and a commercial name, use the commercial name.

This key is the "Generic name", which refers to the specific category to which the software belongs. You can usually find the generic name in the presentation of the software, when you write: "Software xxx is a yyy". Notable examples include "Text Editor", "Word Processor", "Web Browser", "Chat" and so on… The generic name can be up to 35 characters long.

This key contains a short description of the software. It should be a single line containing a single sentence. Maximum 150 characters are allowed.

This key contains a longer description of the software, between 500 and 10000 chars. It is meant to provide an overview of the capabilities of the software for a potential user. The audience for this text should be that of users of the software, not developers. You can think of this text as the description of the software that would be in its website (if the software had one).

This description can contain some basic markdown: *italic*, **bold**, bullet points and [links](#).

This key contains a reference to the user-level (not developer-level) documentation of the software. The value must be a URL to a hosted version of the documentation.

It is suggested that the URL points to a hosted version of the documentation that is immediately readable through a common web browser in both desktop and mobile format. The documentation should be rendered in HTML and browsable like a website (with a navigation index, a search bar, etc.).

If the documentation is instead available only as a document, put a direct view/download link as URL in this key. You should commit the document as part of the source code repository, and then link to it using the code hosting source browser URL (e.g.: GitHub URL to the file). Prefer using open formats like PDF or ODT for maximum interoperability.

Whichever the format for the documentation, remember to make its source files available under an open license, possibly by committing them as part of the repository itself.

This key contains a reference to the API documentation of the software. The value must be a URL to a hosted version of the documentation.

It is suggested that the URL points to a hosted version of the documentation that is immediately readable through a common web browser. The documentation should be rendered in HTML and browsable like a website (with a navigation index, a search bar, etc.), and if there is a reference or test deployment, possibly offer an interactive interface (e.g. Swagger).

If the documentation is instead available only as a document, put a direct view/download link as URL in this key. You should commit the document as part of the source code repository, and then link to it using the code hosting source browser URL (e.g.: GitHub URL to the file). Prefer using open formats like PDF or ODT for maximum interoperability.

Whichever the format for the documentation, remember to make its source files available under an open license, possibly by committing them as part of the repository itself.

This key contains a list of software features, describing what capabilities the software allows to do. The audience for this text should be that of public decision makers who will be commissioning the software. The features should thus not target developers; instead of listing technical features referring to implementation details, prefer listing user-visible functionalities of the software.

While the key is mandatory, there is no mandatory minimum or maximum number of features that should be listed in this key. Each feature must use a maximum of 100 characters.

The suggested number of features to list is between 5 and 20, depending on the software size and complexity. There is no need for exhaustiveness, as users can always read the documentation for additional information.

This key contains one or multiple paths to files showing screenshots of the software. They are meant to give a quick idea on how the software looks like and how it works. The key value can be the relative path to the file starting from the root of the repository, or it can be an absolute URL pointing to the screenshot in raw version. In both cases, the file must reside inside the same repository where the publiccode.yml file is stored.

This key contains one or multiple URLs of videos showing how the software works. Like screenshots, videos should be used to give a quick overview on how the software looks like and how it works. Videos must be hosted on a video sharing website that supports the oEmbed standard; popular options are YouTube and Vimeo.

Since videos are an integral part of the documentation, it is recommended to publish them with an open license.

A list of awards won by the software.

This string describes the license under which the software is distributed. The string must contain a valid SPDX expression, referring to one (or multiple) open-source license. Please refer to the SPDX documentation for further information.

This string describes the entity that owns the copyright on "most" of the code in the repository. Normally, this is the line that is reported with the copyright symbol at the top of most files in the repo.

It is possible to list multiple owners if required so, using an English sentence. It is also possible to informally refer to a community of group of people like "Linus Torvalds and all Linux contributors".

In case it is not possible to name a main copyright owner, it is possible to omit this key; in those cases, if the repo has a authors file, you can point to it through legal/authorsFile.

This string describes the entity that owns this repository; this might or might not be the same entity who owns the copyright on the code itself. For instance, in case of a fork of the original software, the repoOwner is probably different from the mainCopyrightOwner.

Some open-source software adopt a convention of identify the copyright holders through a file that lists all the entities that own the copyright. This is common in projects strongly backed by a community where there are many external contributors and no clear single/main copyright owner. In such cases, this key can be used to refer to the authors file, using a path relative to the root of the repository.

This section provides information on the maintenance status of the software, useful to evaluate whether the software is actively developed or not.

This key describes how the software is currently maintained.

This key describes the entity or entities, if any, that are currently contracted for maintaining the software. They can be companies, organizations, or other collective names.

One or more contacts maintaining this software.

This key describes the technical people currently responsible for maintaining the software. All contacts need to be a physical person, not a company or an organisation. If somebody is acting as a representative of an institution, it must be listed within the affiliation of the contact.

In case of a commercial agreement (or a chain of such agreements), specify the final entities actually contracted to deliver the maintenance. Do not specify the software owner unless it is technically involved with the maintenance of the product as well.

This section provides an overview of the localization features of the software.

If yes, the software has infrastructure in place or is otherwise designed to be multilingual. It does not need to be available in more than one language.

If present, this is the list of languages in which the software is available. Of course, this list will contain at least one language. The primary language subtag cannot be omitted, as mandated by the BCP 47.

This section provides an overview on the system-level dependencies required to install and use this software.

NOTE: do not list dependencies at the source code level (e.g.: software libraries being used), and focus only on runtime and/or system-level dependencies that must be installed and maintained separately. For instance, a database is a good example of such dependencies.

This key contains a list of runtime dependencies that are distributed under an open-source license.

This key contains a list of runtime dependencies that are distributed under a proprietary license.

This key contains a list of hardware dependencies that must be owned to use the software.

This section contains the keys for auto-declaring the compliance with the current legislation, with respect to the following sections. Not including these keys implies that the compliance is not known or not declared.

If present and set to true, the software is compliant with the Italian accessibility laws (L. 4/2004), as further explained in the linee guida di design (Italian language).

If present and set to true, the software is compliant with the linee guida sull'interoperabilità.

Regulatory reference: Art. 73 del CAD (Italian language).

If present and set to true, the software is compliant with the Misure minime di sicurezza ICT per le Pubbliche amministrazioni (Italian language).

If present and set to true, the software interfaces with SPID - il Sistema Pubblico di Identità Digitale.

If present and set to true, the software interfaces with the Italian electronic ID card (Carta di Identità Elettronica).

If present and set to true, the software interfaces with ANPR.

If present and set to true, the software interfaces with pagoPA.

If present and set to true, the software interfaces with IO app (https://io.italia.it)

This key represents the administration code inside the Public Administration index (codice IPA).

publiccodeYmlVersion name url platforms categories developmentStatus softwareType description legal maintenance localisation

JSON schema for publiccode.yml

Provide a JSON object that satisfies the schema "JSON schema for publiccode.yml". Here are the required top‑level fields: publiccodeYmlVersion, name, url, platforms, categories, developmentStatus, softwareType, description, legal, maintenance, localisation. 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/pubspec","$comment":"See https://dart.dev/tools/pub/pubspec","definitions":{"version":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+(?:[+-]\\S+)?$"},"versionConstraint":{"description":"Version range of the package or SDK to use","oneOf":[{"type":"string","description":"Allows any version of the package. This is not recommended for performance reasons","enum":["any",""]},{"$ref":"#/definitions/version"},{"type":"string","examples":[">1.0.0 <2.3.0-beta",">=1.0.0-pre.1 <=3.0.0"],"pattern":"^(?:(?:>=|>|<=|<)\\d+\\.\\d+\\.\\d+(?:[+-]\\S+)?\\s*)+$"},{"type":"string","examples":["^1.0.0"],"pattern":"^\\^\\d+\\.\\d+\\.\\d+(?:[+-]\\S+)?$"}]},"dependency":{"oneOf":[{"$comment":"Syntax in yaml: `foo: ^1.2.3`","$ref":"#/definitions/versionConstraint"},{"$comment":"Syntax in yaml: `foo:` or `foo: null`","description":"Default dependency, matches any version of the package","type":"null"},{"title":"SDK dependency","type":"object","properties":{"sdk":{"description":"The SDK which contains this package","type":"string"},"version":{"$ref":"#/definitions/versionConstraint"}},"required":["sdk"],"additionalProperties":false},{"title":"Hosted dependency","type":"object","properties":{"hosted":{"oneOf":[{"type":"string","description":"URL of the package server hosting this package","format":"uri"},{"type":"object","properties":{"name":{"type":"string"},"url":{"description":"The package server hosting this package","type":"string","format":"uri"}},"required":["url"]}]},"version":{"$ref":"#/definitions/versionConstraint"}},"required":["hosted"],"additionalProperties":false},{"description":"Git dependency","type":"object","properties":{"git":{"$comment":"Can either be a string (uri) or an object with ref etc.","oneOf":[{"description":"URI of the repository hosting this package","type":"string"},{"type":"object","properties":{"url":{"type":"string","description":"URI of the repository hosting this package"},"path":{"type":"string","description":"Path of this package relative to the Git repo's root"},"ref":{"type":"string","description":"The branch, tag, or anything else Git allows to identify a commit."}}}]}},"required":["git"],"additionalProperties":false},{"description":"Path dependency","type":"object","properties":{"path":{"type":"string"}},"additionalProperties":false}]},"dependencies":{"type":"object","additionalProperties":{"$ref":"#/definitions/dependency"}}},"description":"Dart Pubspec file","properties":{"name":{"description":"The name of this package. The name is how other packages refer to yours, should you publish it. [Learn more](https://dart.dev/tools/pub/pubspec#name)","pattern":"[a-z0-9_]","type":"string","examples":["path","convert","http"]},"version":{"$ref":"#/definitions/version","description":"A version number is required to host your package on the pub.dev site, but can be omitted for local-only packages. If you omit it, your package is implicitly versioned 0.0.0. [Learn more](https://dart.dev/tools/pub/pubspec#version)","default":"0.1.0","examples":["1.2.3","1.2.3+4","1.2.3-pre.1","1.2.3-pre.1+4"]},"description":{"description":"A short, plain text sales-pitch for your package in English. [Learn More](https://dart.dev/tools/pub/pubspec#description)","type":"string","examples":["A string-based path manipulation library. All of the path operations you know and love, with solid support for Windows, POSIX (Linux and Mac OS X), and the web.","Utilities for converting between data representations. Provides a number of Sink, Codec, Decoder, and Encoder types.","A composable, multi-platform, Future-based API for HTTP requests."]},"homepage":{"description":"A URL pointing to the website for your package. [Learn more](https://dart.dev/tools/pub/pubspec#homepage)","type":"string","format":"uri","examples":["https://flutter.dev","https://dart.dev/"]},"repository":{"description":"The optional repository field should contain the URL for your package's source code repository. [Learn more](https://dart.dev/tools/pub/pubspec#repository)","type":"string","format":"uri","examples":["https://github.com/flutter/flutter"]},"issue_tracker":{"description":"A URL for the package's issue tracker, where existing bugs can be viewed and new bugs can be filed. [Learn more](https://dart.dev/tools/pub/pubspec#issue_tracker)","type":"string","format":"uri","examples":["https://github.com/flutter/flutter/issues"]},"documentation":{"description":"A site that hosts documentation, separate from the main homepage and from the Pub-generated API reference. [Learn more](https://dart.dev/tools/pub/pubspec#documentation)","type":"string","format":"uri","examples":["https://flutter.dev/docs","https://dart.dev/guides"]},"executables":{"description":"A package may expose one or more of its scripts as executables that can be run directly from the command line. [Learn more](https://dart.dev/tools/pub/pubspec#executables)","type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"null"}]},"examples":[{"dartfmt":"bin/dartfmt.dart","dartdoc":null}]},"platforms":{"description":"The platforms field specifies which platforms the package supports. [Learn more](https://dart.dev/tools/pub/pubspec#platforms)","type":"object","properties":{"android":{"type":"null"},"ios":{"type":"null"},"linux":{"type":"null"},"macos":{"type":"null"},"web":{"type":"null"},"windows":{"type":"null"}},"additionalProperties":false},"publish_to":{"description":"Can be used to specify a custom pub package server to publish. Specify none to prevent a package from being published. [Learn more.](https://dart.dev/tools/pub/pubspec#publish_to)","type":"string","oneOf":[{"type":"string","format":"uri"},{"type":"string","enum":["none"]}]},"funding":{"description":"List of URLs where users can sponsor development of the package. [Learn more.](https://dart.dev/tools/pub/pubspec#funding)","type":"array","items":{"type":"string","format":"uri"},"examples":[["https://www.buymeacoffee.com/example_user","https://www.patreon.com/some-account"]]},"false_secrets":{"description":"Gitignore style list of files where pub will not search for accidentally exposed keys. [Learn more.](https://dart.dev/tools/pub/pubspec#false_secrets)","type":"array","examples":[["/lib/src/hardcoded_api_key.dart","/test/localhost_certificates/*.pem"]]},"screenshots":{"description":"Showcase widgets or other visual elements using screenshots displayed that will be displayed on pub.dev. [Learn more.](https://dart.dev/tools/pub/pubspec#screenshots)","type":"array","maxItems":10,"items":{"type":"object","properties":{"description":{"type":"string","maxLength":160},"path":{"type":"string","pattern":"^.+\\.(png|jpg|gif|webp)$"}},"required":["description","path"]}},"topics":{"description":"Pub.dev displays the topics on the package page as well as in the search results. [See the list of available topics](https://pub.dev/topics) [Learn more.](https://dart.dev/tools/pub/pubspec#topics)","type":"array","maxItems":5,"items":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,30}[a-z0-9]$"},"examples":[["network","http"],["graphql","langchain","wasm"]]},"ignored_advisories":{"description":"A list of security advisory identifiers that are ignored for this package. [See pub.dev Security Advisories](https://dart.dev/tools/pub/security-advisories) [Learn more.](https://dart.dev/tools/pub/pubspec#ignored_advisories)","type":"array","items":{"type":"string"}},"environment":{"type":"object","examples":[{"sdk":">=1.19.0 <3.0.0","flutter":"^0.1.2"}],"additionalProperties":{"$ref":"#/definitions/versionConstraint"}},"dependencies":{"$ref":"#/definitions/dependencies"},"dev_dependencies":{"$ref":"#/definitions/dependencies"},"dependency_overrides":{"$ref":"#/definitions/dependencies"},"flutter":{"description":"Flutter-specific metadata. [Learn more.](https://docs.flutter.dev/tools/pubspec)","type":"object","properties":{"uses-material-design":{"description":"Whether this project uses the Material Design package. Required if you use the Material icon font","type":"boolean","default":true},"generate":{"description":"Enables generation of localized strings from arb files","type":"boolean","default":false},"assets":{"description":"A list of directories or files that contain images or other assets. [Learn more.](https://flutter.dev/docs/development/ui/assets-and-images)","type":"array","items":{"oneOf":[{"description":"A directory or a file containing assets. A directory has a trailing slash. [Learn more.](https://flutter.dev/docs/development/ui/assets-and-images)","type":"string"},{"type":"object","properties":{"path":{"type":"string","examples":["images/","postscript_tiger.svg"]},"flavors":{"title":"Asset Flavors","description":"A list of flavors that include the asset. [Learn more.](https://docs.flutter.dev/deployment/flavors#conditionally-bundling-assets-based-on-flavor)","type":"array","items":{"description":"The name of the flavor","type":"string"}},"transformers":{"title":"Asset Transformers","description":"A list of transformers to apply to the asset. [Learn more.](https://docs.flutter.dev/ui/assets/asset-transformation)","type":"array","items":{"type":"object","properties":{"package":{"description":"A Dart command-line app that is invoked with dart run with at least two arguments: --input, which contains the path to the file to transform and --output, which is the location where the transformer code must write its output to","type":"string","examples":["vector_graphics_compiler"]},"args":{"type":"array","items":{"type":"string"},"minItems":1,"examples":[["--tessellate","--font-size=14"]]}},"required":["package"],"examples":[]},"examples":[[{"package":"vector_graphics_compiler","args":["--tessellate","--font-size=14"]}]]}},"required":["path"],"additionalProperties":false}]},"examples":[["images/","fonts/"],["my_icon.png",{"path":"svg/","transformers":[{"package":"vector_graphics_compiler","args":["--tessellate","--font-size=14"]}]}]]},"fonts":{"title":"Fonts","description":"A list of font families and their fonts. [Learn more.](https://docs.flutter.dev/cookbook/design/fonts#declare-the-font-in-the-pubspec-yaml-file)","type":"array","items":{"type":"object","properties":{"family":{"description":"The name of the typeface. You use this name in the `fontFamily` property of a `TextStyle` object.","type":"string"},"fonts":{"type":"array","minItems":1,"items":{"type":"object","properties":{"asset":{"description":"The path to the font file. Flutter supports the following font formats: OpenType font collections: .ttc, TrueType fonts: .ttf, OpenType fonts: .otf. Flutter does not support fonts in the Web Open Font Format, .woff and .woff2, on desktop platforms.","type":"string","pattern":"^.+\\.(ttf|otf|ttc)$"},"style":{"description":"The style property specifies whether the glyphs in the font file display as either italic or normal. These values correspond to the FontStyle. You can use these styles in the fontStyle property of a TextStyle object. [Learn more.](https://docs.flutter.dev/cookbook/design/fonts#set-font-weight)","type":"string","enum":["normal","italic"]},"weight":{"description":"The weight property specifies the weight of the outlines in the file. These values correspond to the FontWeight and can be used in the fontWeight property of a TextStyle object. You can't use the weight property to override the weight of the font. [Learn more.](https://docs.flutter.dev/cookbook/design/fonts#specify-the-font-weight)","type":"integer","enum":[100,200,300,400,500,600,700,800,900]}},"required":["asset"]}}},"required":["family","fonts"]}},"shaders":{"title":"Fragment Shaders","description":"Shaders, in the form of GLSL files with the .frag extension. The Flutter command-line tool compiles the shader to its appropriate backend format, and generates its necessary runtime metadata. The compiled shader is then included in the application just like an asset. [Learn more](https://docs.flutter.dev/ui/design/graphics/fragment-shaders#adding-shaders-to-an-application)","type":"array","items":{"type":"string","description":"Path to a GLSL shader","pattern":"\\.frag$","examples":["shaders/myshader.frag"]},"examples":[["shaders/triangle.frag","glsl/motion_blur.frag"]]}}}},"required":["name"],"title":"Pubspec","type":"object"}
</schema>

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

Version range of the package or SDK to use

Allows any version of the package. This is not recommended for performance reasons

Default dependency, matches any version of the package

SDK dependency

The SDK which contains this package

Hosted dependency

URL of the package server hosting this package

The package server hosting this package

Git dependency

Can either be a string (uri) or an object with ref etc.

URI of the repository hosting this package

Path of this package relative to the Git repo's root

The branch, tag, or anything else Git allows to identify a commit.

Path dependency

Dart Pubspec file

The name of this package. The name is how other packages refer to yours, should you publish it. [Learn more](https://dart.dev/tools/pub/pubspec#name)

A version number is required to host your package on the pub.dev site, but can be omitted for local-only packages. If you omit it, your package is implicitly versioned 0.0.0. [Learn more](https://dart.dev/tools/pub/pubspec#version)

A short, plain text sales-pitch for your package in English. [Learn More](https://dart.dev/tools/pub/pubspec#description)

A string-based path manipulation library. All of the path operations you know and love, with solid support for Windows, POSIX (Linux and Mac OS X), and the web.

Utilities for converting between data representations. Provides a number of Sink, Codec, Decoder, and Encoder types.

A composable, multi-platform, Future-based API for HTTP requests.

A URL pointing to the website for your package. [Learn more](https://dart.dev/tools/pub/pubspec#homepage)

The optional repository field should contain the URL for your package's source code repository. [Learn more](https://dart.dev/tools/pub/pubspec#repository)

A URL for the package's issue tracker, where existing bugs can be viewed and new bugs can be filed. [Learn more](https://dart.dev/tools/pub/pubspec#issue_tracker)

A site that hosts documentation, separate from the main homepage and from the Pub-generated API reference. [Learn more](https://dart.dev/tools/pub/pubspec#documentation)

A package may expose one or more of its scripts as executables that can be run directly from the command line. [Learn more](https://dart.dev/tools/pub/pubspec#executables)

The platforms field specifies which platforms the package supports. [Learn more](https://dart.dev/tools/pub/pubspec#platforms)

Can be used to specify a custom pub package server to publish. Specify none to prevent a package from being published. [Learn more.](https://dart.dev/tools/pub/pubspec#publish_to)

List of URLs where users can sponsor development of the package. [Learn more.](https://dart.dev/tools/pub/pubspec#funding)

Gitignore style list of files where pub will not search for accidentally exposed keys. [Learn more.](https://dart.dev/tools/pub/pubspec#false_secrets)

Showcase widgets or other visual elements using screenshots displayed that will be displayed on pub.dev. [Learn more.](https://dart.dev/tools/pub/pubspec#screenshots)

Pub.dev displays the topics on the package page as well as in the search results. [See the list of available topics](https://pub.dev/topics) [Learn more.](https://dart.dev/tools/pub/pubspec#topics)

A list of security advisory identifiers that are ignored for this package. [See pub.dev Security Advisories](https://dart.dev/tools/pub/security-advisories) [Learn more.](https://dart.dev/tools/pub/pubspec#ignored_advisories)

Flutter-specific metadata. [Learn more.](https://docs.flutter.dev/tools/pubspec)

Whether this project uses the Material Design package. Required if you use the Material icon font

Enables generation of localized strings from arb files

A list of directories or files that contain images or other assets. [Learn more.](https://flutter.dev/docs/development/ui/assets-and-images)

A directory or a file containing assets. A directory has a trailing slash. [Learn more.](https://flutter.dev/docs/development/ui/assets-and-images)

Asset Flavors

A list of flavors that include the asset. [Learn more.](https://docs.flutter.dev/deployment/flavors#conditionally-bundling-assets-based-on-flavor)

The name of the flavor

Asset Transformers

A list of transformers to apply to the asset. [Learn more.](https://docs.flutter.dev/ui/assets/asset-transformation)

A Dart command-line app that is invoked with dart run with at least two arguments: --input, which contains the path to the file to transform and --output, which is the location where the transformer code must write its output to

Fonts

A list of font families and their fonts. [Learn more.](https://docs.flutter.dev/cookbook/design/fonts#declare-the-font-in-the-pubspec-yaml-file)

The name of the typeface. You use this name in the `fontFamily` property of a `TextStyle` object.

The path to the font file. Flutter supports the following font formats: OpenType font collections: .ttc, TrueType fonts: .ttf, OpenType fonts: .otf. Flutter does not support fonts in the Web Open Font Format, .woff and .woff2, on desktop platforms.

The style property specifies whether the glyphs in the font file display as either italic or normal. These values correspond to the FontStyle. You can use these styles in the fontStyle property of a TextStyle object. [Learn more.](https://docs.flutter.dev/cookbook/design/fonts#set-font-weight)

The weight property specifies the weight of the outlines in the file. These values correspond to the FontWeight and can be used in the fontWeight property of a TextStyle object. You can't use the weight property to override the weight of the font. [Learn more.](https://docs.flutter.dev/cookbook/design/fonts#specify-the-font-weight)

Fragment Shaders

Shaders, in the form of GLSL files with the .frag extension. The Flutter command-line tool compiles the shader to its appropriate backend format, and generates its necessary runtime metadata. The compiled shader is then included in the application just like an asset. [Learn more](https://docs.flutter.dev/ui/design/graphics/fragment-shaders#adding-shaders-to-an-application)

Path to a GLSL shader

Pubspec

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


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","$comment":"https://github.com/actions/labeler","additionalProperties":{"title":"Label","type":["string","array"],"items":{"anyOf":[{"type":"string"},{"properties":{"any":{"title":"Any","type":"array","items":{"type":"string"}},"all":{"title":"All","type":"array","items":{"type":"string"}}}}]}},"description":"A GitHub Action for automatically labelling pull requests.","id":"https://json.schemastore.org/pull-request-labeler.json","title":"Pull Request Labeler","type":"object"}
</schema>

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

Label

Any

All

A GitHub Action for automatically labelling pull requests.

Pull Request Labeler

Provide a JSON object that satisfies the schema "Pull Request Labeler". 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/pulumi.json","$defs":{"pluginOptions":{"title":"PluginOptions","type":"object","additionalProperties":false,"required":["name","path"],"properties":{"name":{"type":"string","description":"Name of the plugin"},"path":{"type":"string","description":"Path to the plugin folder"},"version":{"type":"string","description":"Version of the plugin, if not set, will match any version the engine requests."}}},"simpleConfigType":{"title":"SimpleConfigType","enum":["string","integer","boolean","array"]},"configItemsType":{"type":"object","required":["type"],"properties":{"type":{"oneOf":[{"$ref":"#/$defs/simpleConfigType"},{"$ref":"#/$defs/configItemsType"}]},"items":{"$ref":"#/$defs/configItemsType"}},"if":{"properties":{"type":{"const":"array"}}},"then":{}},"configTypeDeclaration":{"title":"ConfigTypeDeclaration","type":"object","additionalProperties":false,"properties":{"type":{"$ref":"#/$defs/simpleConfigType"},"items":{"$ref":"#/$defs/configItemsType"},"description":{"type":"string"},"secret":{"type":"boolean"},"default":{},"value":{}}}},"additionalProperties":true,"description":"A schema for Pulumi project files.","properties":{"name":{"description":"Name of the project containing alphanumeric characters, hyphens, underscores, and periods.","type":"string","minLength":1},"description":{"description":"Description of the project.","type":["string","null"]},"author":{"description":"Author is an optional author that created this project.","type":["string","null"]},"website":{"description":"Website is an optional website for additional info about this project.","type":["string","null"]},"license":{"description":"License is the optional license governing this project's usage.","type":["string","null"]},"runtime":{"title":"ProjectRuntimeInfo","oneOf":[{"title":"Name","type":"string","minLength":1},{"type":"object","properties":{"name":{"title":"Name","type":"string","minLength":1},"options":{"title":"Options","type":"object","additionalProperties":true}},"additionalProperties":false}]},"main":{"description":"Path to the Pulumi program. The default is the working directory.","type":["string","null"]},"config":{"description":"A map of configuration keys to their types. Using config directory location relative to the location of Pulumi.yaml is a deprecated use of this key. Use stackConfigDir instead.","type":["object","null"],"properties":{"secret":{"description":"If true this configuration value should be encrypted.","type":"boolean","default":false}},"additionalProperties":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"boolean"},{"type":"array"},{"$ref":"#/$defs/configTypeDeclaration"}]}},"stackConfigDir":{"description":"Config directory location relative to the location of Pulumi.yaml.","type":["string","null"]},"backend":{"description":"Backend of the project.","type":["object","null"],"properties":{"url":{"description":"URL is optional field to explicitly set backend url","type":"string"}},"additionalProperties":false},"options":{"description":"Additional project options.","type":["object","null"],"properties":{"refresh":{"description":"Set to \"always\" to refresh the state before performing a Pulumi operation.","type":"string","const":"always"}},"additionalProperties":false},"template":{"title":"ProjectTemplate","description":"ProjectTemplate is a Pulumi project template manifest.","type":["object","null"],"properties":{"description":{"description":"Description of the template.","type":["string","null"]},"quickstart":{"description":"Quickstart contains optional text to be displayed after template creation.","type":["string","null"]},"important":{"description":"Important indicates the template is important and should be listed by default.","type":["boolean","null"]},"config":{"description":"Config to apply to each stack in the project.","type":["object","null"],"additionalProperties":{"type":"object","properties":{"description":{"description":"Description of the config.","type":["string","null"]},"default":{"description":"Default value of the config."},"secret":{"description":"Boolean indicating if the configuration is labeled as a secret.","type":["boolean","null"]}}}}},"additionalProperties":false},"plugins":{"description":"Override for the plugin selection. Intended for use in developing pulumi plugins.","type":"object","properties":{"providers":{"description":"Plugins for resource providers.","type":"array","items":{"$ref":"#/$defs/pluginOptions"}},"analyzers":{"description":"Plugins for policy analyzers.","type":"array","items":{"$ref":"#/$defs/pluginOptions"}},"languages":{"description":"Plugins for languages.","type":"array","items":{"$ref":"#/$defs/pluginOptions"}}}}},"required":["name","runtime"],"title":"Pulumi Project","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Pulumi Project". Here are the required top‑level fields: name, runtime. Return only the valid JSON object.

PluginOptions

Name of the plugin

Path to the plugin folder

Version of the plugin, if not set, will match any version the engine requests.

SimpleConfigType

ConfigTypeDeclaration

A schema for Pulumi project files.

Name of the project containing alphanumeric characters, hyphens, underscores, and periods.

Description of the project.

Author is an optional author that created this project.

Website is an optional website for additional info about this project.

License is the optional license governing this project's usage.

ProjectRuntimeInfo

Name

Name

Options

Path to the Pulumi program. The default is the working directory.

A map of configuration keys to their types. Using config directory location relative to the location of Pulumi.yaml is a deprecated use of this key. Use stackConfigDir instead.

If true this configuration value should be encrypted.

Config directory location relative to the location of Pulumi.yaml.

Backend of the project.

URL is optional field to explicitly set backend url

Additional project options.

Set to "always" to refresh the state before performing a Pulumi operation.

ProjectTemplate

ProjectTemplate is a Pulumi project template manifest.

Description of the template.

Quickstart contains optional text to be displayed after template creation.

Important indicates the template is important and should be listed by default.

Config to apply to each stack in the project.

Description of the config.

Default value of the config.

Boolean indicating if the configuration is labeled as a secret.

Override for the plugin selection. Intended for use in developing pulumi plugins.

Plugins for resource providers.

Plugins for policy analyzers.

Plugins for languages.

Pulumi Project

Provide a JSON object that satisfies the schema "Pulumi Project". Here are the required top‑level fields: name, runtime. 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/putout.json","additionalProperties":false,"definitions":{"rule":{"oneOf":[{"description":"\ud83d\udc0aPutout rule\n\n\"off\" means rule is off\n\"on\" means it is a on\n","enum":["on","off"]},{"type":"array","items":[{"enum":["on","off"]},{"type":"object"}],"minItems":2,"additionalItems":false},{"type":"array","items":[{"enum":["on","off"]},{"type":"string"},{"type":"object"}],"minItems":3,"additionalItems":false},{"type":"array","items":[{"enum":["on","off"]},{"type":"string"}],"minItems":2,"additionalItems":false}]},"rules":{"description":"\ud83d\udc0aPutout comes with a large number of rules. You can modify which rules your project uses.","type":"object","properties":{"apply-at":{"$ref":"#/definitions/rule"},"apply-destructuring":{"$ref":"#/definitions/rule"},"return":{"$ref":"#/definitions/rule"},"return/apply-early":{"$ref":"#/definitions/rule"},"return/simplify-boolean":{"$ref":"#/definitions/rule"},"return/convert-from-break":{"$ref":"#/definitions/rule"},"return/remove-useless":{"$ref":"#/definitions/rule"},"apply-montag":{"$ref":"#/definitions/rule"},"apply-nullish-coalescing":{"$ref":"#/definitions/rule"},"math":{"$ref":"#/definitions/rule"},"math/apply-numeric-separators":{"$ref":"#/definitions/rule"},"math/apply-exponentiation":{"$ref":"#/definitions/rule"},"math/apply-multiplication":{"$ref":"#/definitions/rule"},"math/convert-sqrt-to-hypot":{"$ref":"#/definitions/rule"},"math/declare":{"$ref":"#/definitions/rule"},"math/remove-unchanged-zero-declarations":{"$ref":"#/definitions/rule"},"apply-shorthand-properties":{"$ref":"#/definitions/rule"},"try-catch":{"$ref":"#/definitions/rule"},"try-catch/await":{"$ref":"#/definitions/rule"},"try-catch/async":{"$ref":"#/definitions/rule"},"try-catch/sync":{"$ref":"#/definitions/rule"},"try-catch/declare":{"$ref":"#/definitions/rule"},"try-catch/args":{"$ref":"#/definitions/rule"},"try-catch/expand-args":{"$ref":"#/definitions/rule"},"browserlist":{"$ref":"#/definitions/rule"},"cloudcmd":{"$ref":"#/definitions/rule"},"conditions":{"$ref":"#/definitions/rule"},"conditions/apply-comparison-order":{"$ref":"#/definitions/rule"},"conditions/apply-if":{"$ref":"#/definitions/rule"},"conditions/convert-comparison-to-boolean":{"$ref":"#/definitions/rule"},"conditions/convert-equal-to-strict-equal":{"$ref":"#/definitions/rule"},"conditions/evaluate":{"$ref":"#/definitions/rule"},"conditions/merge-if-statements":{"$ref":"#/definitions/rule"},"conditions/simplify":{"$ref":"#/definitions/rule"},"conditions/remove-constant":{"$ref":"#/definitions/rule"},"conditions/remove-boolean":{"$ref":"#/definitions/rule"},"conditions/remove-useless-else":{"$ref":"#/definitions/rule"},"label":{"$ref":"#/definitions/rule"},"label/convert-to-object":{"$ref":"#/definitions/rule"},"label/remove-unused":{"$ref":"#/definitions/rule"},"convert-apply-to-spread":{"$ref":"#/definitions/rule"},"convert-arguments-to-rest":{"$ref":"#/definitions/rule"},"convert-array-copy-to-slice":{"$ref":"#/definitions/rule"},"convert-bitwise-to-logical":{"$ref":"#/definitions/rule"},"convert-concat-to-flat":{"$ref":"#/definitions/rule"},"convert-index-of-to-includes":{"$ref":"#/definitions/rule"},"convert-is-nan-to-number-is-nan":{"$ref":"#/definitions/rule"},"convert-math-pow":{"$ref":"#/definitions/rule"},"convert-mock-require-to-mock-import":{"$ref":"#/definitions/rule"},"convert-object-assign-to-merge-spread":{"$ref":"#/definitions/rule"},"convert-quotes-to-backticks":{"$ref":"#/definitions/rule"},"convert-spread-to-array-from":{"$ref":"#/definitions/rule"},"convert-template-to-string":{"$ref":"#/definitions/rule"},"convert-throw":{"$ref":"#/definitions/rule"},"convert-to-arrow-function":{"$ref":"#/definitions/rule"},"declare":{"$ref":"#/definitions/rule"},"eslint":{"$ref":"#/definitions/rule"},"extract-object-properties":{"$ref":"#/definitions/rule"},"extract-sequence-expressions":{"$ref":"#/definitions/rule"},"for-of/for":{"$ref":"#/definitions/rule"},"for-of/for-each":{"$ref":"#/definitions/rule"},"for-of/for-in":{"$ref":"#/definitions/rule"},"for-of/map":{"$ref":"#/definitions/rule"},"for-of/remove-useless":{"$ref":"#/definitions/rule"},"for-of/remove-unused-variables":{"$ref":"#/definitions/rule"},"for-of/remove-useless-array-from":{"$ref":"#/definitions/rule"},"github":{"$ref":"#/definitions/rule"},"gitignore":{"$ref":"#/definitions/rule"},"jest":{"$ref":"#/definitions/rule"},"madrun":{"$ref":"#/definitions/rule"},"maybe":{"$ref":"#/definitions/rule"},"merge-destructuring-properties":{"$ref":"#/definitions/rule"},"parens":{"$ref":"#/definitions/rule"},"parens/add-missing":{"$ref":"#/definitions/rule"},"nodejs":{"$ref":"#/definitions/rule"},"nodejs/convert-esm-to-commonjs":{"$ref":"#/definitions/rule"},"nodejs/convert-commonjs-to-esm":{"$ref":"#/definitions/rule"},"nodejs/convert-dirname-to-url":{"$ref":"#/definitions/rule"},"nodejs/convert-fs-promises":{"$ref":"#/definitions/rule"},"nodejs/convert-promisify-to-fs-promises":{"$ref":"#/definitions/rule"},"nodejs/convert-top-level-return":{"$ref":"#/definitions/rule"},"nodejs/remove-process-exit":{"$ref":"#/definitions/rule"},"nodejs/add-missing-strict-mode":{"$ref":"#/definitions/rule"},"nodejs/remove-useless-strict-mode":{"$ref":"#/definitions/rule"},"nodejs/rename-file-mjs-to-js":{"$ref":"#/definitions/rule"},"nodejs/cjs-file":{"$ref":"#/definitions/rule"},"nodejs/mjs-file":{"$ref":"#/definitions/rule"},"npmignore":{"$ref":"#/definitions/rule"},"package-json":{"$ref":"#/definitions/rule"},"postcss":{"$ref":"#/definitions/rule"},"promises":{"$ref":"#/definitions/rule"},"promises/add-missing-await":{"$ref":"#/definitions/rule"},"promises/apply-top-level-await":{"$ref":"#/definitions/rule"},"promises/apply-await-import":{"$ref":"#/definitions/rule"},"promises/convert-new-promise-to-async":{"$ref":"#/definitions/rule"},"promises/convert-reject-to-throw":{"$ref":"#/definitions/rule"},"promises/remove-useless-async":{"$ref":"#/definitions/rule"},"promises/remove-useless-await":{"$ref":"#/definitions/rule"},"promises/remove-useless-resolve":{"$ref":"#/definitions/rule"},"putout":{"$ref":"#/definitions/rule"},"putout/add-args":{"$ref":"#/definitions/rule"},"putout/add-index-to-import":{"$ref":"#/definitions/rule"},"putout/add-push":{"$ref":"#/definitions/rule"},"putout/apply-async-formatter":{"$ref":"#/definitions/rule"},"putout/apply-create-test":{"$ref":"#/definitions/rule"},"putout/apply-declare":{"$ref":"#/definitions/rule"},"putout/apply-insert-after":{"$ref":"#/definitions/rule"},"putout/apply-insert-before":{"$ref":"#/definitions/rule"},"putout/apply-namaspace-specifier":{"$ref":"#/definitions/rule"},"putout/apply-processors-destructuring":{"$ref":"#/definitions/rule"},"putout/apply-remove":{"$ref":"#/definitions/rule"},"putout/check-match":{"$ref":"#/definitions/rule"},"putout/check-replace-code":{"$ref":"#/definitions/rule"},"putout/convert-add-argument-to-add-args":{"$ref":"#/definitions/rule"},"putout/convert-babel-types":{"$ref":"#/definitions/rule"},"putout/convert-destructuring-to-identifier":{"$ref":"#/definitions/rule"},"putout/convert-dirname-to-url":{"$ref":"#/definitions/rule"},"putout/convert-find-to-traverse":{"$ref":"#/definitions/rule"},"putout/convert-get-rule-to-require":{"$ref":"#/definitions/rule"},"putout/convert-match-to-function":{"$ref":"#/definitions/rule"},"putout/convert-method-to-property":{"$ref":"#/definitions/rule"},"putout/convert-node-to-path-in-get-template-values":{"$ref":"#/definitions/rule"},"putout/convert-number-to-numeric":{"$ref":"#/definitions/rule"},"putout/convert-process-to-find":{"$ref":"#/definitions/rule"},"putout/convert-putout-test-to-create-test":{"$ref":"#/definitions/rule"},"putout/convert-replace-to-function":{"$ref":"#/definitions/rule"},"putout/convert-replace-with":{"$ref":"#/definitions/rule"},"putout/convert-replace-with-multiple":{"$ref":"#/definitions/rule"},"putout/convert-report-to-function":{"$ref":"#/definitions/rule"},"putout/convert-to-no-transform-code":{"$ref":"#/definitions/rule"},"putout/convert-traverse-to-include":{"$ref":"#/definitions/rule"},"putout/convert-traverse-to-replace":{"$ref":"#/definitions/rule"},"putout/convert-url-to-dirname":{"$ref":"#/definitions/rule"},"putout/create-test":{"$ref":"#/definitions/rule"},"putout/declare":{"$ref":"#/definitions/rule"},"putout/includer":{"$ref":"#/definitions/rule"},"putout/insert-rust":{"$ref":"#/definitions/rule"},"putout/move-require-on-top-level":{"$ref":"#/definitions/rule"},"putout/rename-operate-to-operator":{"$ref":"#/definitions/rule"},"putout/replace-operate-with-operator":{"$ref":"#/definitions/rule"},"putout/replace-test-message":{"$ref":"#/definitions/rule"},"putout/shorten-imports":{"$ref":"#/definitions/rule"},"putout-config":{"$ref":"#/definitions/rule"},"react-hooks":{"$ref":"#/definitions/rule"},"regexp":{"$ref":"#/definitions/rule"},"remove-boolean-from-assertions":{"$ref":"#/definitions/rule"},"remove-boolean-from-logical-expressions":{"$ref":"#/definitions/rule"},"remove-console":{"$ref":"#/definitions/rule"},"remove-debugger":{"$ref":"#/definitions/rule"},"remove-duplicate-case":{"$ref":"#/definitions/rule"},"remove-duplicate-interface-keys":{"$ref":"#/definitions/rule"},"remove-duplicate-keys":{"$ref":"#/definitions/rule"},"remove-duplicates-from-logical-expressions":{"$ref":"#/definitions/rule"},"remove-duplicates-from-union":{"$ref":"#/definitions/rule"},"remove-empty":{"$ref":"#/definitions/rule"},"remove-empty/argument":{"$ref":"#/definitions/rule"},"remove-empty/block":{"$ref":"#/definitions/rule"},"remove-empty/pattern":{"$ref":"#/definitions/rule"},"esm":{"$ref":"#/definitions/rule"},"esm/remove-empty-import":{"$ref":"#/definitions/rule"},"esm/remove-empty-export":{"$ref":"#/definitions/rule"},"esm/convert-assert-to-with":{"$ref":"#/definitions/rule"},"esm/group-imports-by-source":{"$ref":"#/definitions/rule"},"esm/declare-imports-first":{"$ref":"#/definitions/rule"},"esm/remove-quotes-from-import-assertions":{"$ref":"#/definitions/rule"},"esm/merge-duplicate-imports":{"$ref":"#/definitions/rule"},"esm/sort-imports-by-specifier":{"$ref":"#/definitions/rule"},"optional-chaining":{"$ref":"#/definitions/rule"},"optional-chaining/convert-optional-assign-to-logical":{"$ref":"#/definitions/rule"},"optional-chaining/convert-optional-to-logical":{"$ref":"#/definitions/rule"},"optional-chaining/convert-logical-assign-to-optional":{"$ref":"#/definitions/rule"},"optional-chaining/convert-logical-to-optional":{"$ref":"#/definitions/rule"},"remove-iife":{"$ref":"#/definitions/rule"},"remove-nested-blocks":{"$ref":"#/definitions/rule"},"remove-unreachable-code":{"$ref":"#/definitions/rule"},"remove-unreferenced-variables":{"$ref":"#/definitions/rule"},"remove-unused-expressions":{"$ref":"#/definitions/rule"},"remove-unused-private-fields":{"$ref":"#/definitions/rule"},"remove-unused-types":{"$ref":"#/definitions/rule"},"remove-unused-variables":{"$ref":"#/definitions/rule"},"remove-useless-arguments":{"$ref":"#/definitions/rule"},"remove-useless-array":{"$ref":"#/definitions/rule"},"remove-useless-array-constructor":{"$ref":"#/definitions/rule"},"remove-useless-array-entries":{"$ref":"#/definitions/rule"},"remove-useless-constructor":{"$ref":"#/definitions/rule"},"remove-useless-continue":{"$ref":"#/definitions/rule"},"remove-useless-escape":{"$ref":"#/definitions/rule"},"remove-useless-functions":{"$ref":"#/definitions/rule"},"remove-useless-map":{"$ref":"#/definitions/rule"},"remove-useless-new":{"$ref":"#/definitions/rule"},"remove-useless-operand":{"$ref":"#/definitions/rule"},"remove-useless-spread":{"$ref":"#/definitions/rule"},"remove-useless-template-expressions":{"$ref":"#/definitions/rule"},"remove-useless-templates":{"$ref":"#/definitions/rule"},"remove-useless-type-conversion":{"$ref":"#/definitions/rule"},"remove-useless-types-from-constants":{"$ref":"#/definitions/rule"},"remove-useless-variables":{"$ref":"#/definitions/rule"},"reuse-duplicate-init":{"$ref":"#/definitions/rule"},"assignment":{"$ref":"#/definitions/rule"},"assignment/simplify":{"$ref":"#/definitions/rule"},"assignment/split":{"$ref":"#/definitions/rule"},"assignment/convert-to-arrow-function":{"$ref":"#/definitions/rule"},"assignment/convert-to-comparison":{"$ref":"#/definitions/rule"},"assignment/convert-to-declaration":{"$ref":"#/definitions/rule"},"simplify-logical-expressions":{"$ref":"#/definitions/rule"},"simplify-ternary":{"$ref":"#/definitions/rule"},"split-nested-destructuring":{"$ref":"#/definitions/rule"},"split-variable-declarations":{"$ref":"#/definitions/rule"},"tape":{"$ref":"#/definitions/rule"},"tape/remove-only":{"$ref":"#/definitions/rule"},"tape/remove-skip":{"$ref":"#/definitions/rule"},"travis":{"$ref":"#/definitions/rule"},"types":{"$ref":"#/definitions/rule"},"types/convert-typeof-to-is-type":{"$ref":"#/definitions/rule"},"types/remove-useless-conversion":{"$ref":"#/definitions/rule"},"types/remove-double-negations":{"$ref":"#/definitions/rule"},"types/remove-useless-typeof":{"$ref":"#/definitions/rule"},"types/apply-is-array":{"$ref":"#/definitions/rule"},"typescript":{"$ref":"#/definitions/rule"},"typescript/apply-as-type-assertion":{"$ref":"#/definitions/rule"},"typescript/apply-utility-types":{"$ref":"#/definitions/rule"},"typescript/convert-generic-to-shorthand":{"$ref":"#/definitions/rule"},"typescript/remove-duplicate-interface-keys":{"$ref":"#/definitions/rule"},"typescript/remove-duplicates-from-union":{"$ref":"#/definitions/rule"},"typescript/remove-unused-types":{"$ref":"#/definitions/rule"},"typescript/remove-useless-mapped-types":{"$ref":"#/definitions/rule"},"typescript/remove-useless-mapping-modifiers":{"$ref":"#/definitions/rule"},"typescript/remove-useless-types":{"$ref":"#/definitions/rule"},"typescript/remove-useless-types-from-constants":{"$ref":"#/definitions/rule"},"webpack":{"$ref":"#/definitions/rule"}}}},"properties":{"printer":{"description":"Tell \ud83d\udc0aPutout which printer to use","oneOf":[{"type":"string"},{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"string"},{"type":"object"}]}]},"parser":{"description":"Tell \ud83d\udc0aPutout which parser to use","type":"string"},"formatter":{"description":"Choose the way to show information about errors found","type":["string","array"]},"processors":{"description":"Tell \ud83d\udc0aPutout which processors to use to support file types other then JavaScript","type":"array","uniqueItems":true,"items":{"type":"string"}},"ignore":{"description":"Tell \ud83d\udc0aPutout to ignore specific files and directories.","type":"array","uniqueItems":true,"items":{"type":"string"}},"match":{"description":"Allows to match rules for files and folders, specified by glob patterns.","type":"object","patternProperties":{"^.*$":{"$ref":"#/definitions/rules"},"additionalProperties":false}},"plugins":{"description":"Tell \ud83d\udc0aPutout which plugins to load","type":"array","uniqueItems":true},"rules":{"$ref":"#/definitions/rules"}},"type":"object"}
</schema>

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

🐊Putout rule

"off" means rule is off
"on" means it is a on

🐊Putout comes with a large number of rules. You can modify which rules your project uses.

Tell 🐊Putout which printer to use

Tell 🐊Putout which parser to use

Choose the way to show information about errors found

Tell 🐊Putout which processors to use to support file types other then JavaScript

Tell 🐊Putout to ignore specific files and directories.

Allows to match rules for files and folders, specified by glob patterns.

Tell 🐊Putout which plugins to load

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