## TL;DR
After `cdktf synth --hcl`, edit the generated backend config: change `workspaces = {` to `workspaces {` (remove the `=`). Then `terraform init` will accept it.

## The error
`cdktf synth --hcl` generates:
```hcl
workspaces = {
  name = "test-stack"
}
```
`terraform init` fails because `workspaces` must be a block, not an attribute:
```hcl
workspaces {
  name = "test-stack"
}
```

## Fix it
1. Run `cdktf synth --hcl` as usual.
2. Open the generated `.tf` backend configuration.
3. Change `workspaces = {` to `workspaces {` (delete the equals sign).
4. Run `terraform init` and confirm it initializes.

Expected result: init succeeds against the remote backend.

## When to use this
- You use `cdktf synth --hcl` with a remote backend using workspaces
- `terraform init` fails on the generated backend config

## When NOT to use this
- You use the default JSON synth (unaffected)
- The backend uses `prefix` instead of workspaces (different syntax)

## Root cause
The HCL generator does not distinguish block syntax from attribute syntax for `workspaces`, emitting it as an attribute assignment. Terraform's backend schema requires the block form, so init rejects the generated file. The JSON synth path is unaffected because JSON has no block/attribute distinction.

## Edge cases
- Re-synth overwrites your edit; script the sed replacement if you synth often: `sed -i 's/workspaces = {/workspaces {/' [file]`.