"""Port: a live sleeve's current per-symbol target weights as of a rebalance date."""
from __future__ import annotations

from typing import Protocol


class PositionSource(Protocol):
    """A live sleeve's current per-symbol target weights (signed) as of a rebalance date.

    Returns {} when the sleeve has no data / can't surface weights (caller skips + logs).
    """

    def current_weights(self, as_of: str) -> dict[str, float]: ...
