# Documentation > Documentation for the VDL language, CLI, plugin system, and reference behavior. ## Overview - [Documentation](https://vdl.varavel.com/docs/index.md): Documentation for the VDL language, CLI, plugin system, and reference behavior. ## Sections - [Essentials](https://vdl.varavel.com/docs/essentials/index.md): Start here to understand what VDL is and where it fits. - [Language Guide](https://vdl.varavel.com/docs/language/index.md): Learn how to write VDL schemas from first principles. - [Guides](https://vdl.varavel.com/docs/guides/index.md): Practical guides for installing, configuring, and extending VDL. - [Reference](https://vdl.varavel.com/docs/reference/index.md): Reference material for VDL language behavior, formatting, annotations, RPCs, and events. ## Pages - [About VDL](https://vdl.varavel.com/docs/essentials/about/index.md): Learn what VDL is, what it provides, and why the core language stays small. - [Start Here](https://vdl.varavel.com/docs/language/start-here/index.md): Learn how to write VDL schemas from first principles. - [Files and Comments](https://vdl.varavel.com/docs/language/files/index.md): How VDL files are structured and how comments work. - [Includes](https://vdl.varavel.com/docs/language/includes/index.md): Split VDL schemas across files with include statements. - [Docstrings](https://vdl.varavel.com/docs/language/docstrings/index.md): Document VDL schemas with inline and external Markdown docs. - [Types](https://vdl.varavel.com/docs/language/types/index.md): Define object types, aliases, arrays, maps, and inline objects. - [Field Types](https://vdl.varavel.com/docs/language/field-types/index.md): Learn primitives, arrays, maps, custom types, enums, and inline object field types. - [Enums](https://vdl.varavel.com/docs/language/enums/index.md): Define finite sets of named values. - [Constants and Literals](https://vdl.varavel.com/docs/language/constants/index.md): Define reusable dynamic literal values with const declarations. - [Annotations](https://vdl.varavel.com/docs/language/annotations/index.md): Attach metadata to VDL declarations, fields, and enum members. - [Spreads and References](https://vdl.varavel.com/docs/language/spreads-references/index.md): Reuse fields, enum members, and literal values safely. - [Naming and Validation](https://vdl.varavel.com/docs/language/naming-validation/index.md): Learn the naming conventions and validation rules VDL applies. - [Installation](https://vdl.varavel.com/docs/guides/installation/index.md): Complete installation options for the VDL CLI. - [CLI Commands](https://vdl.varavel.com/docs/guides/cli/index.md): Complete reference for the VDL command-line interface. - [Editor Integration](https://vdl.varavel.com/docs/guides/editors/index.md): Set up VDL support in your code editor. - [Project Configuration](https://vdl.varavel.com/docs/guides/configuration/index.md): Configure VDL generation with vdl.config.vdl. - [Available Plugins](https://vdl.varavel.com/docs/guides/plugins/index.md): Official VDL plugins and what each one generates. - [Creating Plugins](https://vdl.varavel.com/docs/guides/creating-plugins/index.md): A practical guide to writing VDL plugins. - [Language Specification](https://vdl.varavel.com/docs/reference/spec/index.md): Varavel Definition Language (VDL) specification. - [Formatting Guide](https://vdl.varavel.com/docs/reference/formatting-guide/index.md): Standard formatting conventions for VDL. - [Deprecation Annotations](https://vdl.varavel.com/docs/reference/deprecations/index.md): Marking declarations and members as deprecated with @deprecated. - [RPC Annotations](https://vdl.varavel.com/docs/reference/rpc/index.md): Modeling RPC services with annotations and full request lifecycle behavior. - [Event Annotations](https://vdl.varavel.com/docs/reference/events/index.md): Modeling asynchronous events, routing subjects, and strict payloads with the @event annotation.