"""Free Music Archive fetcher — DEFERRED (see spec §6.4).

CC-licensed music (cc_by / cc_by_nc / cc0). Highest API-stability risk: the
public FMA API has been deprecated/changed, so a real implementation resolves
from a track URL + page metadata. The Fetcher seam is wired; it raises until
implemented.
"""

from __future__ import annotations

from tools.ingest.base import Candidate

_DEFERRED = "deferred — see spec §6.4 (FMA public API deprecated/changed)"


class FmaFetcher:
    archive = "fma"

    def __init__(self, client):
        self.client = client

    def search(self, query: str, *, limit: int) -> list[Candidate]:
        raise NotImplementedError(_DEFERRED)

    def resolve(self, identifier: str) -> Candidate:
        raise NotImplementedError(_DEFERRED)
