Remove hardcoded allowed attrs from grammar

Instead, we'll just validate this later on. In particular we need to reuse
`map` as a type.
Use types more consistently, add maps