Introduction
DixScript (.mdix) is a programmable configuration format where you define patterns
once and reuse them everywhere. It combines configuration, compile-time functions, encryption,
and compression in a single file — with zero external dependencies.
Everything Is Optional
Every section in a DixScript file is optional. A completely empty file is valid.
If @DATA is absent the compiler issues a warning but continues normally.
@SECURITY is auto-filled by the compiler when DEncryptor is present
in @DLM and no @SECURITY block is provided.
The minimal valid file is simply an empty file, or one that contains only a comment.
Section Keywords Are Case-Insensitive
Section opener keywords are matched case-insensitively by the compiler.
@data, @DATA, and @Data are all equivalent.
The conventional form uses all-caps, which is what formatters will normalise to.
@data( // valid — normalised to @DATA
app = "x"
)
@Config( // valid — normalised to @CONFIG
version -> "1.0.0"
) File Sections
@CONFIG optional Compiler settings and file metadata. All keys are optional. @IMPORTS optional Import QuickFuncs and enums from other .mdix files — local or via URL. @ENUMS optional Named constant sets enforced at compile time. @QUICKFUNCS optional Compile-time functions. Zero runtime overhead. @DATA optional Your configuration data. A warning is issued if absent, but omission is valid. @SECURITY optional Encryption mode and key configuration. Required when using DEncryptor — auto-filled by the compiler if omitted. @DLM optional Data Lifecycle Modules: compression, encryption, auditing. Section Order
Sections must appear in the order shown above when multiple are present.
The compiler enforces ordering to enable single-pass resolution — for example,
@ENUMS must precede @QUICKFUNCS so enum types are
known when function signatures are parsed.
Which Section Can Access Which
Each section has a defined resolution scope. A section can only reference symbols from sections that precede it in the file.
| Section | Used By | Can Access |
|---|---|---|
@CONFIG | Compiler | — |
@IMPORTS | @QUICKFUNCS, @DATA | External .mdix files |
@ENUMS | @QUICKFUNCS, @DATA, @SECURITY | Defined in same file |
@QUICKFUNCS | @DATA, @QUICKFUNCS | @ENUMS, @IMPORTS |
@DATA | Runtime consumers | @ENUMS, @QUICKFUNCS, @IMPORTS |
@SECURITY | @DLM → DEncryptor | @ENUMS |
@DLM | Compiler pipeline | @SECURITY |
Calling QuickFuncs and Using Enums
QuickFuncs and enum values may only be called or referenced from within
@QUICKFUNCS and @DATA. They are compile-time constructs
and have no representation at runtime — they are fully resolved before any output
is produced.