does this work?:

    public <T extends Entity> T addChild(EntitySpec<T> spec)

similar didn't work for for `addChild(Entity)` (due to groovy) but it might work here.  would be really nice to avoid cast in calling code.