There are a lot of workarounds, but why doesn’t this exist natively? I mean, there must be a reason as to why the Terraform specifically doesn’t want this?
If there’s no reason but “We just didn’t built it (yet)”, I might have a shot at it myself and offer a pull request
Then once you have the syntax correct (using the correct delimiters) Terraform will also know that it’s supposed to convert the top-level object to be a map instead, since {} is the syntax for constructing an object value, rather than a map value.
(You can read more about how map types and object types differ – and more generally, how collection and structural types differ – in under Type Constraints - Complex Types in the documentation, if you’re interested in more background information on this.)