Description
What problem does this solve or what need does it fill?
Commands (like removing components or despawning entities) may fail for various reasons. Right now, for the sake of idempotency (the same function applied twice should do the same thing as the function applied once), robustness and not spamming the user endlessly, these silently fail.
This is not always the desired behavior, and should be configurable at the call site.
Possible solutions
Approach to config
Global config is convenient for reducing boilerplate, but the desired behavior may fail by call site.
Local config is useful for both debugging and persistent configuration.
Default behavior
This could panic, warn or fail silently.
Patterns
More methods: this is bad for API explosion.
Extra argument: this is very verbose for common operations because Rust doesn't have default arguments
Builder pattern: nice, as long as we don't have to use it.
Additional context
@Frizi, @BoxyUwU and myself ran into this while discussing new commands for relations in bevyengine/rfcs#18