Skip to content

API Scry

kimja edited this page Jul 31, 2026 · 1 revision

🧬 API β€Ί Scry

🧬 Scry - raw observable

πŸ“œ Lets you peek into the river without making yourself seen in return. It returns the raw IObservable<T> for a desired matter type - a read-only access to the underlying stream, without registering a known spell.

Unlike the other API methods, Scry takes no who and returns no IDisposable. It is anonymous to Eris and doesn't do automatic circumstance tracking. It is a tool for reading additional matter from within another (needy) spell.

IObservable<SecretShared> secretsTheyDontKnowIKnow = rzeka.Scry<SecretShared>();

Main use - reading additional context into a Shuttle responder. Shuttle has only one input slot (the request), so any other data the spell needs to do its magic - game state, settings, world snapshot - has to come in though Scry (see the full pattern at Multi-context Response using Scry):

Q += rzeka.Shuttle<LoadSceneRequest, LoadSceneResponse>(
    this,
    reqs => reqs.WithLatestFromMatter(rzeka.Scry<GameState>(), rzeka.Scry<Settings>())
        .Select(ctx => /* build response from request + ambient context */)
);

Scry also works inside Loom and Weave when you've exhausted their 3-input overloads and need a fourth stream, but that's rare in practice - Shuttle is the main raison d'Γͺtre of Scry.


See also: Shuttle · Loom · Weave · 🧬 API overview

Clone this wiki locally