Avoid panicking asserts
There are a few places in the code (including orbital-core) that uses assert!() macro, and that is a source of possible Panics, both in the orbital binary and in others using orbital core as a dependency.
Some of them are related to types used too, e.g. a window width /Rect structure) is i32, and can be negative, and assert!(width > 0) is used. e.g. that could maybe that could be avoided by using a constructor for Rect, that did the check once at creation time or whenever modified, and then other operations on Rect can assume it is > 0.
Avoiding them may require returning Option/Result, or changes to types used, hence changing the public API.
So this requires analysis of users of those API methods and how best to avoid them.