extends: - [spectral:oas, all] rules: celestia-info-license-apache: description: Celestia OpenAPI specs must declare Apache-2.0 licensing. severity: warn given: $.info.license then: - field: name function: pattern functionOptions: match: '^Apache-2\.0$' celestia-bearer-auth-required: description: Celestia Node JSON-RPC endpoints require a bearer auth token. severity: warn given: $.components.securitySchemes.BearerAuth then: - field: scheme function: pattern functionOptions: match: '^bearer$' celestia-method-namespace-prefix: description: Celestia JSON-RPC method enums must use a module-prefixed name like 'blob.Submit'. severity: warn given: $..method.enum[*] then: function: pattern functionOptions: match: '^(blob|header|share|state|das|fraud|node|p2p|da|blobstream)\.[A-Z][A-Za-z]+$' celestia-tag-title-case: description: Top-level tags must use Title Case. severity: warn given: $.tags[*].name then: function: pattern functionOptions: match: '^([A-Z][a-z0-9]*)([A-Z0-9][a-z0-9]*|2P)*$'