# Contributing

Contributions are welcome. This project models black holes across all mass scales, so physical correctness is critical.

## Getting Started

```bash
git clone https://github.com/celestial4498-prog/BlackHolesFactory.git
cd BlackHolesFactory
cargo build
cargo test --all-targets
```

## Before Submitting

1. **Tests pass** — `cargo test --all-targets`
2. **No warnings** — `cargo clippy --all-targets`
3. **Formatted** — `cargo fmt`
4. **Examples run** — all four examples exit with code 0

## Guidelines

- Keep physics accurate. Cite sources for new formulas or constants.
- No `println!`/`eprintln!` to suppress unused values — consume them through real computation.
- Match existing code style. No doc-comments on internals.
- New black hole types go in `src/types/` with corresponding tests in `tests/types_tests.rs`.
- New physics modules need integration tests in `tests/`.
- Use `sciforge` for physical constants — don't hardcode them.
- Edition 2024, dependencies use `"*"`.

## Adding a New Black Hole Type

1. Create `src/types/your_type.rs` with a struct wrapping `Singularity`
2. Add formation channels and class-specific observables
3. Register in `src/types/mod.rs`
4. Add tests in `tests/types_tests.rs`
5. Optionally add an example in `examples/`

## Reporting Issues

Open an issue with:
- What you expected vs what happened
- Minimal reproduction steps
- Relevant test output

## License

By contributing, you agree that your contributions are licensed under MIT.

## Contact

Join the Discord server: https://discord.com/channels/1489158007219556487/1489181752923656212
