Really great feedback on bevy. Some of the pain points you mentioned are being worked on like the asset system is being completely reworked. Other things like there being a lot of runtime checks won’t change anytime soon. (Fixing this in bevy would require a way to get a const type id, which isn’t really possible with how rust currently works.)
Comments on the issues you were having:
I was thinking it should have been a custom schedule maybe, that I would run manually somehow
This is what I would recommend for anything turn based.
load configuration from lets say a json file at runtime
I usually use bevy_common_assets for this.
I have no idea how to take ownership of a component.
The problem here is that the world owns the components, so you can only get ownership when you have access to &mut World
. For what you want to do I would recommend writing a custom EntityCommand. https://docs.rs/bevy/latest/bevy/ecs/system/trait.EntityCommand.html