From d55898a1160c747cb08324d30e460365f8ecc335 Mon Sep 17 00:00:00 2001 From: Kin Lane Date: Fri, 1 May 2026 20:06:21 -0400 Subject: [PATCH 1/4] Add new property types to 0.20 schema, fix naming inconsistencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add 22 new reserved types from provider usage analysis (Website, Portal, DeveloperPortal, Examples, Vocabulary, SpectralRules, JSONLD, Console, YouTube, StackOverflow, Community, FAQ, LinkedIn, X, ReleaseNotes, CLI, Compliance, Training, License, Sandbox, Slack, Discord) - Add GitHubOrganization and GitHubRepository as canonical aliases for GitHubOrg and GitHubRepo - Fix JsonStructure → JSONStructure (correct casing per naming convention) - Remove duplicate ApiExamples entry in pattern - Update specificationVersion description from 0.19 to 0.20 Co-Authored-By: Claude Sonnet 4.6 --- spec/schema_0.20.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/schema_0.20.yml b/spec/schema_0.20.yml index dfb42dc..ba5fd69 100644 --- a/spec/schema_0.20.yml +++ b/spec/schema_0.20.yml @@ -144,7 +144,7 @@ $defs: type: type: string description: One of the designated API property types or a custom one prefixed with x-. - pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(GitHubOrg)$|^(GitHubRepo)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(ApiExamples)$|^(LlmsText)$|^(JsonStructure)$|^(Summary)$|^(AgentSkills)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Standards)$|^(Services)$|^(X-[A-Za-z0-9\\-]*)$" + pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(GitHubOrg)$|^(GitHubOrganization)$|^(GitHubRepo)$|^(GitHubRepository)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(LlmsText)$|^(JSONStructure)$|^(Summary)$|^(AgentSkills)$|^(Standards)$|^(Services)$|^(Website)$|^(Portal)$|^(DeveloperPortal)$|^(Examples)$|^(Vocabulary)$|^(SpectralRules)$|^(JSONLD)$|^(Console)$|^(YouTube)$|^(StackOverflow)$|^(Community)$|^(FAQ)$|^(LinkedIn)$|^(X)$|^(ReleaseNotes)$|^(CLI)$|^(Compliance)$|^(Training)$|^(License)$|^(Sandbox)$|^(Slack)$|^(Discord)$|^(X-[A-Za-z0-9\\-]*)$" mediaType: type: string description: IANA media type representing the property. @@ -280,7 +280,7 @@ properties: description: Date when the file was modified specificationVersion: type: string - description: APIs.json spec version, latest is 0.19 + description: APIs.json spec version, latest is 0.20 apis: type: array items: From 6a3a888869386c435ab664519e239c4f1fb1c486 Mon Sep 17 00:00:00 2001 From: Kin Lane Date: Sat, 2 May 2026 10:22:20 -0400 Subject: [PATCH 2/4] Add schema_0.21.yml with 13 FinOps and sustainability types Adds FocusBillingExport, FocusConformanceReport, FocusContractCommitments, OpenCostSpecification, OpenCostAllocationAPI, UnitEconomics, ChargebackPolicy, TaggingPolicy, InvoiceReconciliation, FinOpsFramework, SoftwareCarbonIntensity, SCIReport, and GHGProtocolReport to the reserved type pattern. Co-Authored-By: Claude Sonnet 4.6 --- spec/schema_0.21.yml | 318 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 318 insertions(+) create mode 100644 spec/schema_0.21.yml diff --git a/spec/schema_0.21.yml b/spec/schema_0.21.yml new file mode 100644 index 0000000..7a61b58 --- /dev/null +++ b/spec/schema_0.21.yml @@ -0,0 +1,318 @@ +--- +"$id": https://github.com/apis-json/api-json/blob/develop/spec/ +"$schema": https://json-schema.org/draft/2020-12/schema +title: JSON Schema for APIs.json 0.21 +type: object +additionalProperties: false +patternProperties: + "^X-": + type: object + +$defs: + + maintainers: + description: The person or organization responsible for maintaining the API + required: + - name + properties: + name: + type: string + description: name + minLength: 5 + additionalProperties: + type: string + + apis: + description: The description of the API + required: + - name + - description + - image + - baseURL + - humanURL + - properties + properties: + aid: + type: string + description: unique identifier for API + name: + type: string + description: name + minLength: 2 + description: + type: string + description: description of the API + minLength: 5 + image: + type: string + description: URL of an image representing the API + created: + type: string + format: date + description: Date when the api was added to APIs.json + modified: + type: string + format: date + description: Date when the api was last modified + baseURL: + type: string + pattern: "^(http)|(https)://(.*)$" + description: baseURL + humanURL: + type: string + pattern: "^(http)|(https)://(.*)$" + description: humanURL + tags: + type: array + items: + type: string + minLength: 1 + description: tags to describe the API + properties: + type: array + items: + "$ref": "#/$defs/urls" + description: URLs + contact: + type: array + items: + "$ref": "#/$defs/contact" + description: Contact to reach if questions about API + meta: + type: array + items: + "$ref": "#/$defs/metaInformation" + metaInformation: + description: Metadata about the API + required: + - key + - value + properties: + key: + type: string + value: + type: string + contact: + description: Information on contacting the API support + required: + - FN + additionalProperties: true + patternProperties: + "^X-": + type: string + properties: + FN: + type: string + minLength: 1 + email: + type: string + format: email + organizationName: + type: string + minLength: 1 + adr: + type: string + tel: + type: string + minLength: 1 + X-twitter: + type: string + X-github: + type: string + photo: + type: string + pattern: "^(http)|(https)://(.*)$" + vCard: + type: string + pattern: "^(http)|(https)://(.*)$" + url: + type: string + pattern: "^(http)|(https)://(.*)$" + urls: + description: A representation of a URL + required: + - type + - url + properties: + name: + type: string + description: The display name of the property. + description: + type: string + description: The description of the property. + minLength: 5 + type: + type: string + description: One of the designated API property types or a custom one prefixed with x-. + pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(GitHubOrg)$|^(GitHubOrganization)$|^(GitHubRepo)$|^(GitHubRepository)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(LlmsText)$|^(JSONStructure)$|^(Summary)$|^(AgentSkills)$|^(Standards)$|^(Services)$|^(Website)$|^(Portal)$|^(DeveloperPortal)$|^(Examples)$|^(Vocabulary)$|^(SpectralRules)$|^(JSONLD)$|^(Console)$|^(YouTube)$|^(StackOverflow)$|^(Community)$|^(FAQ)$|^(LinkedIn)$|^(X)$|^(ReleaseNotes)$|^(CLI)$|^(Compliance)$|^(Training)$|^(License)$|^(Sandbox)$|^(Slack)$|^(Discord)$|^(FocusBillingExport)$|^(FocusConformanceReport)$|^(FocusContractCommitments)$|^(OpenCostSpecification)$|^(OpenCostAllocationAPI)$|^(UnitEconomics)$|^(ChargebackPolicy)$|^(TaggingPolicy)$|^(InvoiceReconciliation)$|^(FinOpsFramework)$|^(SoftwareCarbonIntensity)$|^(SCIReport)$|^(GHGProtocolReport)$|^(X-[A-Za-z0-9\\-]*)$" + mediaType: + type: string + description: IANA media type representing the property. + url: + type: string + description: The URL for the property. * must be url or data. + data: + oneOf: + - type: object + - type: array + description: The data for the property. * must be url or data + tags: + type: array + items: + type: string + minLength: 1 + description: Tags to describe the property. + tags: + description: A consistent set of tag to apply to a description + + include: + description: Include other APIs.json file + required: + - name + - url + properties: + name: + type: string + minLength: 1 + url: + type: string + overlay: + description: Overlay other APIs.json file + required: + - url + properties: + name: + type: string + minLength: 1 + url: + type: string + network: + description: Network APIs.json file + required: + - name + - url + properties: + name: + type: string + minLength: 1 + url: + type: string +required: +- name +- description +- url +- apis +- maintainers +- tags + +properties: + + aid: + type: string + description: unique identifier for APIs.json + visibility: + type: string + description: The visibility for the APIs.json collection. + enum: + - Public + - Private + - Partner + rating: + type: string + description: The rating for the APIs.json collection. + enum: + - A + - B + - C + - D + - F + type: + type: string + description: The type of the APIs.json collection. + enum: + - Index + - Template + - Example + - Collection + - Sandbox + - Knowledgebase + - Blueprint + - Contract + - Search + - Network + position: + type: string + description: The position of the maintainer of APIs.json. + enum: + - Producing + - Consuming + access: + type: string + description: The access level for the APIs in an APIs.json. + enum: + - Internal + - 1st-Party + - 3rd-Party + name: + type: string + description: The name of the service described + minLength: 3 + maxLength: 50 + description: + type: string + description: Description of the service + minLength: 5 + maxLength: 1000 + url: + type: string + description: URL where the apis.json file will live + pattern: "^(http)|(https)://(.*)$" + image: + type: string + description: Image to represent the API + created: + type: string + format: date + description: Date when the file was created + modified: + type: string + format: date + description: Date when the file was modified + specificationVersion: + type: string + description: APIs.json spec version, latest is 0.21 + apis: + type: array + items: + "$ref": "#/$defs/apis" + description: All the APIs of this service + maintainers: + type: array + items: + "$ref": "#/$defs/contact" + description: Maintainers of the apis.json file + tags: + type: array + items: + "$ref": "#/$defs/tags" + description: Tags to describe the service + include: + type: array + items: + "$ref": "#/$defs/include" + description: Links to other apis.json definitions included in this service + common: + description: Common properties that apply across all APIs. + type: array + items: + "$ref": "#/$defs/urls" + overlays: + type: array + items: + "$ref": "#/$defs/overlay" + description: Links to other apis.json that will be overlaid original. + network: + type: array + items: + "$ref": "#/$defs/network" + description: Links to other apis.json that will be included in discovery. From bb0a4acea52993dca4a604108034b05555e590a3 Mon Sep 17 00:00:00 2001 From: Kin Lane Date: Sat, 2 May 2026 10:32:21 -0400 Subject: [PATCH 3/4] Sync schema_0.20 and 0.21 type patterns with spec txt Adds 11 types documented in apisjson_0.20.txt but missing from the schema: ALPS, Arazzo, JSONForms, DataContract, ServerlessWorkflow, Plans, UseCases, InsomniaCollection, BrunoCollection, Compare, Evolution. schema_0.21 inherits the same fix plus retains its 13 FinOps/sustainability types. Co-Authored-By: Claude Sonnet 4.6 --- spec/schema_0.20.yml | 2 +- spec/schema_0.21.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/schema_0.20.yml b/spec/schema_0.20.yml index ba5fd69..232538e 100644 --- a/spec/schema_0.20.yml +++ b/spec/schema_0.20.yml @@ -144,7 +144,7 @@ $defs: type: type: string description: One of the designated API property types or a custom one prefixed with x-. - pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(GitHubOrg)$|^(GitHubOrganization)$|^(GitHubRepo)$|^(GitHubRepository)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(LlmsText)$|^(JSONStructure)$|^(Summary)$|^(AgentSkills)$|^(Standards)$|^(Services)$|^(Website)$|^(Portal)$|^(DeveloperPortal)$|^(Examples)$|^(Vocabulary)$|^(SpectralRules)$|^(JSONLD)$|^(Console)$|^(YouTube)$|^(StackOverflow)$|^(Community)$|^(FAQ)$|^(LinkedIn)$|^(X)$|^(ReleaseNotes)$|^(CLI)$|^(Compliance)$|^(Training)$|^(License)$|^(Sandbox)$|^(Slack)$|^(Discord)$|^(X-[A-Za-z0-9\\-]*)$" + pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(ALPS)$|^(Arazzo)$|^(JSONForms)$|^(DataContract)$|^(ServerlessWorkflow)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(Plans)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(UseCases)$|^(GitHubOrg)$|^(GitHubOrganization)$|^(GitHubRepo)$|^(GitHubRepository)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(LlmsText)$|^(JSONStructure)$|^(Summary)$|^(AgentSkills)$|^(Standards)$|^(Services)$|^(Website)$|^(Portal)$|^(DeveloperPortal)$|^(Examples)$|^(Vocabulary)$|^(SpectralRules)$|^(JSONLD)$|^(Console)$|^(YouTube)$|^(StackOverflow)$|^(Community)$|^(FAQ)$|^(LinkedIn)$|^(X)$|^(ReleaseNotes)$|^(CLI)$|^(Compliance)$|^(Training)$|^(License)$|^(Sandbox)$|^(Slack)$|^(Discord)$|^(InsomniaCollection)$|^(BrunoCollection)$|^(Compare)$|^(Evolution)$|^(X-[A-Za-z0-9\\-]*)$" mediaType: type: string description: IANA media type representing the property. diff --git a/spec/schema_0.21.yml b/spec/schema_0.21.yml index 7a61b58..ab13c4c 100644 --- a/spec/schema_0.21.yml +++ b/spec/schema_0.21.yml @@ -144,7 +144,7 @@ $defs: type: type: string description: One of the designated API property types or a custom one prefixed with x-. - pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(GitHubOrg)$|^(GitHubOrganization)$|^(GitHubRepo)$|^(GitHubRepository)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(LlmsText)$|^(JSONStructure)$|^(Summary)$|^(AgentSkills)$|^(Standards)$|^(Services)$|^(Website)$|^(Portal)$|^(DeveloperPortal)$|^(Examples)$|^(Vocabulary)$|^(SpectralRules)$|^(JSONLD)$|^(Console)$|^(YouTube)$|^(StackOverflow)$|^(Community)$|^(FAQ)$|^(LinkedIn)$|^(X)$|^(ReleaseNotes)$|^(CLI)$|^(Compliance)$|^(Training)$|^(License)$|^(Sandbox)$|^(Slack)$|^(Discord)$|^(FocusBillingExport)$|^(FocusConformanceReport)$|^(FocusContractCommitments)$|^(OpenCostSpecification)$|^(OpenCostAllocationAPI)$|^(UnitEconomics)$|^(ChargebackPolicy)$|^(TaggingPolicy)$|^(InvoiceReconciliation)$|^(FinOpsFramework)$|^(SoftwareCarbonIntensity)$|^(SCIReport)$|^(GHGProtocolReport)$|^(X-[A-Za-z0-9\\-]*)$" + pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(ALPS)$|^(Arazzo)$|^(JSONForms)$|^(DataContract)$|^(ServerlessWorkflow)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(Plans)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(UseCases)$|^(GitHubOrg)$|^(GitHubOrganization)$|^(GitHubRepo)$|^(GitHubRepository)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(LlmsText)$|^(JSONStructure)$|^(Summary)$|^(AgentSkills)$|^(Standards)$|^(Services)$|^(Website)$|^(Portal)$|^(DeveloperPortal)$|^(Examples)$|^(Vocabulary)$|^(SpectralRules)$|^(JSONLD)$|^(Console)$|^(YouTube)$|^(StackOverflow)$|^(Community)$|^(FAQ)$|^(LinkedIn)$|^(X)$|^(ReleaseNotes)$|^(CLI)$|^(Compliance)$|^(Training)$|^(License)$|^(Sandbox)$|^(Slack)$|^(Discord)$|^(InsomniaCollection)$|^(BrunoCollection)$|^(Compare)$|^(Evolution)$|^(FocusBillingExport)$|^(FocusConformanceReport)$|^(FocusContractCommitments)$|^(OpenCostSpecification)$|^(OpenCostAllocationAPI)$|^(UnitEconomics)$|^(ChargebackPolicy)$|^(TaggingPolicy)$|^(InvoiceReconciliation)$|^(FinOpsFramework)$|^(SoftwareCarbonIntensity)$|^(SCIReport)$|^(GHGProtocolReport)$|^(X-[A-Za-z0-9\\-]*)$" mediaType: type: string description: IANA media type representing the property. From 17098a53ab572a45ec7910340c9fd54cba526681 Mon Sep 17 00:00:00 2001 From: Kin Lane Date: Sat, 2 May 2026 11:43:11 -0400 Subject: [PATCH 4/4] Add NaftikoCapability and NaftikoFleet to schema_0.21.yml pattern Co-Authored-By: Claude Sonnet 4.6 --- spec/schema_0.21.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/schema_0.21.yml b/spec/schema_0.21.yml index ab13c4c..b4854c9 100644 --- a/spec/schema_0.21.yml +++ b/spec/schema_0.21.yml @@ -144,7 +144,7 @@ $defs: type: type: string description: One of the designated API property types or a custom one prefixed with x-. - pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(ALPS)$|^(Arazzo)$|^(JSONForms)$|^(DataContract)$|^(ServerlessWorkflow)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(Plans)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(UseCases)$|^(GitHubOrg)$|^(GitHubOrganization)$|^(GitHubRepo)$|^(GitHubRepository)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(LlmsText)$|^(JSONStructure)$|^(Summary)$|^(AgentSkills)$|^(Standards)$|^(Services)$|^(Website)$|^(Portal)$|^(DeveloperPortal)$|^(Examples)$|^(Vocabulary)$|^(SpectralRules)$|^(JSONLD)$|^(Console)$|^(YouTube)$|^(StackOverflow)$|^(Community)$|^(FAQ)$|^(LinkedIn)$|^(X)$|^(ReleaseNotes)$|^(CLI)$|^(Compliance)$|^(Training)$|^(License)$|^(Sandbox)$|^(Slack)$|^(Discord)$|^(InsomniaCollection)$|^(BrunoCollection)$|^(Compare)$|^(Evolution)$|^(FocusBillingExport)$|^(FocusConformanceReport)$|^(FocusContractCommitments)$|^(OpenCostSpecification)$|^(OpenCostAllocationAPI)$|^(UnitEconomics)$|^(ChargebackPolicy)$|^(TaggingPolicy)$|^(InvoiceReconciliation)$|^(FinOpsFramework)$|^(SoftwareCarbonIntensity)$|^(SCIReport)$|^(GHGProtocolReport)$|^(X-[A-Za-z0-9\\-]*)$" + pattern: "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(ALPS)$|^(Arazzo)$|^(JSONForms)$|^(DataContract)$|^(ServerlessWorkflow)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(Plans)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(UseCases)$|^(GitHubOrg)$|^(GitHubOrganization)$|^(GitHubRepo)$|^(GitHubRepository)$|^(GitHubHttpUrl)$|^(GitHubSshUrl)$|^(GitHubIssues)$|^(GitHubDiscussions)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(MockRestServer)$|^(MockMCPServer)$|^(BackstageApi)$|^(ModelContextProtocol)$|^(ApiExamples)$|^(LlmsText)$|^(JSONStructure)$|^(Summary)$|^(AgentSkills)$|^(Standards)$|^(Services)$|^(Website)$|^(Portal)$|^(DeveloperPortal)$|^(Examples)$|^(Vocabulary)$|^(SpectralRules)$|^(JSONLD)$|^(Console)$|^(YouTube)$|^(StackOverflow)$|^(Community)$|^(FAQ)$|^(LinkedIn)$|^(X)$|^(ReleaseNotes)$|^(CLI)$|^(Compliance)$|^(Training)$|^(License)$|^(Sandbox)$|^(Slack)$|^(Discord)$|^(InsomniaCollection)$|^(BrunoCollection)$|^(Compare)$|^(Evolution)$|^(FocusBillingExport)$|^(FocusConformanceReport)$|^(FocusContractCommitments)$|^(OpenCostSpecification)$|^(OpenCostAllocationAPI)$|^(UnitEconomics)$|^(ChargebackPolicy)$|^(TaggingPolicy)$|^(InvoiceReconciliation)$|^(FinOpsFramework)$|^(SoftwareCarbonIntensity)$|^(SCIReport)$|^(GHGProtocolReport)$|^(NaftikoCapability)$|^(NaftikoFleet)$|^(X-[A-Za-z0-9\\-]*)$" mediaType: type: string description: IANA media type representing the property.