# DEPS — mgf-tele-core's bidirectional dependency manifest

> **§1** — what mgf-tele-core depends on. **§2** — who depends on
> mgf-tele-core. Knowing both directions makes deprecation,
> breaking-change blast-radius, and feature-prioritisation tractable.
>
> **Per standard DOC-16** (v2.12): every project ships a `DEPS.md`.
> Replaces the former `USERS.md`.

Last verified: 2026-06-09.

---

## §1 What mgf-tele-core depends on

mgf-tele-core is the **vendor-neutral core** of the `mgf-tele-*`
family — it sits near the bottom of the telematics graph and keeps its
runtime surface deliberately minimal. Its only runtime dependency is a
single federation sibling:

| Dependency | Window | Why | Tier |
|---|---|---|---|
| `mgf-common` | `>=0.41,<0.42` | `AppError` — the base every `TelematicsError` subclasses; typed exception hierarchy | runtime |

*Federation siblings depended on: `mgf-common` — the cornerstone;
provides `mgf.common.exceptions.AppError`, the root of the
`TelematicsError` hierarchy.*

No third-party runtime deps: the frame types are stdlib-only frozen
dataclasses and the provider is a pure ABC. Test/lint tooling
(`pytest`, `mgf-test-supervisor`, `ruff`, `mypy`, `import-linter`)
lives in the `[dev]` extra only.

---

## §2 Who depends on mgf-tele-core

Consumer projects + federation siblings that import this project.
(Inverse of each consumer's `MGF_ADOPTION.md`.)

| Project / sibling | Location | Import sites | Status | Surfaces used |
|---|---|---:|---|---|
| **PlasmaMapper** | `/home/bassam/PycharmProjects/PlasmaMapper` | 5 | Active — consumer #1, multi-tenant FastAPI SaaS | `TelematicsProvider` / `SessionHandle` / `TrackerCommand` / `CommandAck` / `GeoPoint` / `DecodedAvlRecord` / `ReceivedPacket` / `ParseStatus` + the `TelematicsError` hierarchy + `mgf.tele.core.mock` |
| **mgf-tele-teltonika** (sibling) | `/home/bassam/PycharmProjects/mgf-tele-teltonika` | 6 | Active — first vendor codec; newly extracted 2026-05-28 | `TelematicsProvider` + frame types + `TelematicsError` / `MalformedPacketError` (implements the ABC for Teltonika Codec 8/8E/12) |

**mgf-tele-teltonika** is a federation sibling in the `mgf-tele-*`
family: it pins `mgf-tele-core>=0.1,<0.2` and implements the
`TelematicsProvider` ABC, building directly on this package and never
the reverse (enforced by its import-linter contract). It was extracted
on 2026-05-28 as the first per-vendor codec.

**Consumer-side trackers** (per DOC-14 / DOC-15):

- PlasmaMapper: `docs/inprogress/MGF_ADOPTION.md`.

---

## §3 Maintenance

Updated every MINOR release + when a dependency or consumer changes.
A change to the `TelematicsProvider` ABC or the AVL frame types ripples
to every row in §2. Import-survey methodology:

```sh
for proj in PlasmaMapper mgf-tele-teltonika; do
  grep -rE "(from|import) +mgf\.tele\.core" "/home/bassam/PycharmProjects/$proj" \
    --include='*.py' | wc -l
done
```
