# Domain-Specific Language

Record: `arch:domain-specific-language`
Kind: pattern
Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
Severity: contextual
Scope: domain, configuration, rules
Canonical: https://banes-lab.com/ontology#arch-domain-specific-language

## Repair

- Refactored by: Define Grammar, Add Parser/Validator
- Detected by: stringly-typed rules without parser/schema
- Violated by: ambiguous ad-hoc mini-language
- Measured by: DSL validation coverage
- Enforced by: DSL tests, schema/grammar checks

## requires

- [Formal Grammar/Semantics](https://banes-lab.com/records/lex/formal-grammar-semantics.md)

## reinforces

- [Declarative Configuration](https://banes-lab.com/records/arch/declarative-configuration.md)
- [Ubiquitous Language](https://banes-lab.com/records/arch/ubiquitous-language.md)

## enables

- [Domain Expressiveness](https://banes-lab.com/records/lex/domain-expressiveness.md)

## conflicts-with

- [General-Purpose Boilerplate](https://banes-lab.com/records/lex/general-purpose-boilerplate.md)

## tensions-with

- [Tooling/Maintenance](https://banes-lab.com/records/lex/tooling-maintenance.md)

## tensions

- [Domain-Specific Language (DSL) Tooling/Maintenance](https://banes-lab.com/records/tension/domain-specific-language-dsl-tooling-maintenance.md)
