---
description: >-
  OpenTofu language syntax for both the native and JSON variants. Also learn
  formatting conventions that you can enforce with tofu fmt.
---

# Syntax

The majority of the OpenTofu language documentation focuses on the practical
uses of the language and the specific constructs it uses. The pages in this
section offer a more abstract view of the OpenTofu language.

- [Configuration Syntax](../../language/syntax/configuration.mdx) describes the native
  grammar of the OpenTofu language.
- [JSON Configuration Syntax](../../language/syntax/json.mdx) documents
  how to represent OpenTofu language constructs in the pure JSON variant of the
  OpenTofu language. OpenTofu's JSON syntax is unfriendly to humans, but can
  be very useful when generating infrastructure as code with other systems that
  don't have a readily available HCL library.
- [Style Conventions](../../language/syntax/style.mdx) documents some commonly
  accepted formatting guidelines for OpenTofu code. These conventions can be
  enforced automatically with [`tofu fmt`](../../cli/commands/fmt.mdx).
