<?php

namespace App\Services\Prediction\Signals;

interface Signal
{
    /**
     * Evaluate the signal against the given context.
     *
     * Returns the canonical signal payload. Implementations may add extra
     * keys beyond the base shape (e.g. trend adds slope + r_squared).
     *
     * @return array{
     *     score: float,
     *     confidence: float,
     *     direction: string,
     *     detail: string,
     *     data_points: int,
     *     enabled: bool,
     *     ...
     * }
     */
    public function compute(SignalContext $context): array;
}
