oatf 0.3.0

Rust SDK for the Open Agent Threat Format (OATF)
Documentation
# Contributing to oatf-rs

## Getting Started

```bash
git clone --recursive https://github.com/oatf-spec/oatf-rs.git
cd oatf-rs
cargo test
```

The `--recursive` flag ensures the spec submodule is initialized. If you
already cloned without it:

```bash
git submodule update --init --recursive
```

## Development Workflow

1. Create a branch from `main`.
2. Make your changes and ensure all checks pass:
   ```bash
   cargo test --all-features
   cargo clippy -- -D warnings
   cargo fmt --check
   cargo deny check
   ```
3. Open a pull request against `main`.

## Commit Convention

Use [Conventional Commits](https://www.conventionalcommits.org/):

```
feat: add new validation rule V-046
fix: correct duration parsing for fractional seconds
test: add property tests for wildcard paths
refactor: simplify actor collection logic
build: update serde to 1.0.230
```

## Updating the Spec Submodule

```bash
cd spec
git fetch origin
git checkout <desired-tag-or-commit>
cd ..
git add spec
git commit -m "build: update spec submodule to <version>"
```

## CI Checklist

All PRs must pass:

- `cargo fmt --check`
- `cargo clippy -- -D warnings`
- `cargo test` on stable, nightly, and MSRV (1.88.0)
- `cargo test --no-default-features` and `--all-features`
- `cargo deny check`
- `cargo doc --no-deps` (warnings as errors)