Redacted excerpt; full evidence withheld. $ cd && ls -la && cat README.md | head -300 exit: 0 ` on marker methods. The return annotation is for you and your type checker; the runtime never compares types. Every input names its [delivery profile](#how-it-works), `newest` or `ordered`. - **When it runs**, with `@node(execution=…)`: `reactive` (the default once it has an input), `manual` (driven by a callback it owns), or `continuous` with `interval_ms`. A source has nothing to react to, so it must name one. `scheduling` asks for `realtime`, `high` or `normal` priority. - **Its configuration**, as the annotation on `__init__`'s `config` parameter — a `TypedDict`, a dataclass or a pydantic model — passed as `stream_builder.add(MyNode, config={...})`. A node class lives in a module of its own, never in `stream.py`: its process imports the class by [excerpt truncated]