These elements should not get their own layers.

These elements explicitly request layers.

(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 800.00 600.00)
  (children 1
    (GraphicsLayer
      (bounds 800.00 600.00)
      (contentsOpaque 1)
      (children 2
        (GraphicsLayer
          (position 8.00 300.00)
          (bounds 100.00 100.00)
          (drawsContent 1)
        )
        (GraphicsLayer
          (position 8.00 400.00)
          (bounds 100.00 100.00)
          (drawsContent 1)
        )
      )
    )
  )
)

