# dapr — AsyncAPI Spectral ruleset (strengthened) # Plain Spectral. Rules measured from this provider's own AsyncAPI event # conventions by strengthen_asyncapi.py, then self-validated against the spec. # # Provenance: # - channel-key-casing: snake @ 67% (n=3) # - payload-property-casing: snake @ 88% (n=34) # - operation-id-casing: camel @ 100% (n=3, v2) extends: - spectral:asyncapi rules: channel-key-casing: description: Channel names should be snake_case (the dominant convention in this API). severity: warn given: $.channels then: field: '@key' function: casing functionOptions: type: snake payload-property-casing: description: Message payload properties should be snake_case (the dominant convention in this API). severity: info given: $.components.schemas[*].properties then: field: '@key' function: casing functionOptions: type: snake operation-id-casing: description: Operation IDs should be camelCase (the dominant convention in this API). severity: warn given: $.channels[*][publish,subscribe].operationId then: function: casing functionOptions: type: camel no-empty-descriptions: description: Descriptions must not be empty strings. severity: warn given: $..description then: function: truthy