# SpellFilter.DLL

## Origin
**Entirely new** — no corresponding code in the old source tree.
A dedicated module for filtering and managing spell-related game data.

## Binary Facts
- Size: **185 KB**
- Type: COM in-process server (DLL)
- Standard 4 COM exports: `DllCanUnloadNow`, `DllGetClassObject`, `DllRegisterServer`, `DllUnregisterServer`

## What It Does
Provides spell filtering functionality for Asheron's Call — likely parsing spell
tables from the DAT files, categorizing spells, and letting plugins query/filter
spells by school, level, name, or other criteria.

## Reconstruction Notes
- **LOOK AT:** `Managed/Decal.Interop.SpellFilter/` for the COM interface definitions
  this DLL must implement. That directory contains **20 decompiled C# files** — the
  most of any interop assembly, suggesting a rich API surface.

- There is **no old source** to reference. This must be reimplemented from:
  1. The COM interfaces defined in the interop assembly
  2. Understanding of AC's spell data structures (from the DAT file format)
  3. Possibly referencing `Native/DecalDat/` for how spell data was already
     being parsed from DAT files
  4. Possibly referencing `Native/DecalFilters/` for the general filtering
     pattern used by Decal

- The 20 interop files suggest this module exposes multiple interfaces for
  spell tables, individual spells, spell schools, filtering criteria, etc.
