egor 0.7.0

A dead simple 2D graphics engine
Documentation
### Project Scope & Philosophy

Egor is a **graphics engine**, not a game engine

Changes must:

- Be broadly applicable to **apps, tools and games**
- Avoid assumptions about game-specific concepts (entities, scenes, physics, AI, etc)
- Keep APIs generic and composable

If a change only makes sense for games, it likely does not belong in egor

### Commit Messages

Egor uses [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). This helps `git-cliff` parse git history for generating clean release notes

Format:
type(scope): short description

Examples:

- fix(renderer): handle `begin_frame()` returning `None`
- refactor(app): move window title into `AppConfig`
- Avoid vague types/messages (e.g. `chore: stuff`, `fix: misc`)
- docs(readme): clarify wasm setup

Rules:

- One logical change per commit
- No unrelated commits in a single PR
- Squash commits are preferred if history gets messy

### Pull Requests

Before opening a PR:

- [ ] PR addresses **one** issue or feature
- [ ] Commits are clean and logically separated
- [ ] No unrelated refactors or formatting changes
- [ ] Code builds on native **and** wasm (if applicable)
- [ ] Public API changes are explained in the PR description

Scope check:

- Does this help **any 2D app**, or only a game?
- Can this be implemented outside egor by the user?
- Does this reduce flexibility or lock users into a pattern?
- Would this make egor harder to use as a general-purpose graphics library?

If unsure, open an issue or ask in [Discord](https://opensourceforce.net/discord) first

Large or architectural changes should be discussed in an issue first

PRs that mix unrelated changes may be closed or asked to split

### Pre-PR Checklist

Before submitting, make sure your changes pass these commands:

```bash
# Check formatting
cargo fmt --all -- --check

# Build and test native
cargo test --all-targets --all-features --locked

# Lint with Clippy
cargo clippy --all-targets --all-features --locked -- -D warnings -A clippy::new-without-default

# Verify documentation builds
cargo doc --no-deps --document-private-items --locked
```