# `Foundry.Annotations`

Registers standard Foundry annotation module attributes as persistent.

Modules that declare Foundry-specific annotations must `use Foundry.Annotations`
BEFORE any other `use` macros. This suppresses Elixir compiler warnings about
"module attribute was set but never used" while keeping attributes accessible
at runtime via `module.__info__(:attributes)` for the Foundry rules engine.

Registered attributes:
  - @compliance         - List of regulatory requirement IDs (e.g. [:RG_MGA_005])
  - @telemetry_prefix   - Structured telemetry prefix list
  - @adapter_name       - String identifier for adapter modules
  - @foundry            - Map of Foundry metadata for Oban workers and others
  - @runbook            - Path to operational runbook document
  - @adrs               - List of ADR references
  - @idempotency_key    - Reactor idempotency key for deduplication (atom or tuple)
  - @spec_invariants    - Custom spec rule invariants and constraints
  - @step_side_effects  - Map of step names to lists of side effect declarations

Usage:
    use Foundry.Annotations

    @compliance [:RG_MGA_005, :RG_UK_011]
    @telemetry_prefix [:igaming_ref, :promotions, :bonus_campaign]

    use Ash.Resource, domain: MyApp.Domain, ...

---

*Consult [api-reference.md](api-reference.md) for complete listing*
