#Specifications
This directory defines the user-visible contracts for Masterbelt. Implementation packages under internal/ must implement these specifications, not replace them.
#Specification Boundaries
language/: Masterbelt lexical structure, syntax, semantics, modules, names, types, built-ins, standard library, evaluation, and diagnostics.masterdata/: master data schema, keys, relations, validation, query behavior, imports, and exports.codegen/: generation model, runtime requirements, and target-language generation.tooling/: project configuration, CLI, syntax highlighting, symbol tags, formatter, linter, LSP, and developer experience.compatibility.md: compatibility, versioning, and deprecation policy.
masterdata/query describes user-visible query behavior over master data collections. The expression language used inside queries belongs to language/evaluation.
#Dependency Shape
The graph uses one arrow meaning only: A --> B means specification A depends on terms or behavior defined by specification B. It is not a runtime data-flow graph.
#Authoring Rules
- Specify behavior before implementing it under
internal/. - Keep specifications focused on user-visible behavior and compatibility.
- Do not use implementation package names as specification boundaries unless the name is also a user-visible concept.