from __future__ import annotations

from dataclasses import dataclass, field

from .diagram_element import DiagramElement


@dataclass
class Mechanic(DiagramElement):
    """
    Mechanic: logical node that transforms inputs into outputs.

    A mechanic may consume player inputs, Stocks (and their attributes), or the
    outputs of other mechanics. It may produce effects on Stocks, Stock
    attributes, or other mechanics.
    """

    is_gateway: bool = False


