# Contributing to MoonYara

Thank you for your interest in contributing to **MoonYara**! We welcome all contributions, from bug reports to new features, optimizations, and documentation improvements.

## Development Workflow

1. Fork the repository on GitLink or GitHub.
2. Install the [MoonBit toolchain](https://moonbitlang.com).
3. Write your code and add corresponding tests in `*_test.mbt`.
4. Run formatting, type checking, builds, and tests:
   ```bash
   moon fmt --check
   moon check --deny-warn --target all
   moon build --target wasm,wasm-gc,js
   moon info --target all
   moon test --deny-warn --target wasm,wasm-gc,js
   moon build --target native
   moon test --deny-warn --target native
   ```
5. On Windows, run `powershell -NoProfile -File scripts/verify_acceptance.ps1` before submitting a Pull Request.
6. Submit a Pull Request.

## Code Style
Please adhere to standard MoonBit style. Run `moon fmt --check` and keep generated interface changes from `moon info` reviewable.

## Submitting a PR
When submitting a PR, make sure your PR title follows the conventional commits format, e.g.:
- `feat(regex): implement Thompson NFA engine`
- `fix(hex): resolve off-by-one wildcard alignment`
- `docs: update performance benchmarks`
