The problem with the grammar snippet is a misconception of cross references and containment references. You did not define a background somewhere in your sample file but the grammar expects a reference to a background. If you change the definition to something along these lines, it'll work:
Screen:
"Screen name: " name = ID
"Level: " level = STRING
"End: " end = INT
background = Background
character = Character
(enemies+=Enemy)*
(elements+=Element)*
Background:
"Background{
Id: " id = ID
"Image: " image = [Image]
"}";
However, I expect that you actually wanted to use a cross reference instead of a contained background in a given screen. So you have to provide either your complete grammar or define a background prior to using it in a screen.