Skip to content

Decided and not yet

What the language has decided, what it has deferred, and what it will not do.

A language’s edges are as much a part of it as its middle. Everything below was decided rather than forgotten, and each row says where the decision is written down. Nothing here is a bug, and nothing here is a promise.

Draft 1 ended with ten open questions; change set 04 answered most, the implementation settled several more, and the platform measured two. Each row below is either decided, with the section that now states it, or open, with what is missing.

# Question Status
1 as of on every layer decided: the engine reads cold storage for every layer (ADR-018); §11
2 Instrument identity decided: an instrument is a market code, BTC-PERP; §8.1
3 Capability registry history decided: not versioned; a historical answer uses the registry as it stands. Open in part: the decision said a response would state that moment as capabilities_as_of, and nothing writes it (§26)
4 Units of oi, volume_24h, depth decided: requested per query, every value states its own; §8.5
5 Funding on oracle venues deferred: no oracle venue is collected
6 Derived candle rule decided: a derived candle exists only when every base minute exists; §7.2
7 Freshness defaults decided: measured cadences sit well inside them; §8.4
8 Settle window decided: measured, 120 s; §11.5
9 Spot instruments and tape functions out of v1; §17.1 below
10 Public tags moot: alerts left the API; §12.3
11 Mark and index candles decided: Kraken publishes them, Hyperliquid does not; §8.6
12 Cross-instrument references deferred; §17.1 below
13 Book levels under as of decided: metrics only, never the raw book; §7.4a
14 Contract rules per listing decided: in the reference layer where the venue publishes them; §8.2
15 ADR-016 supersession decided: yes (ADR-018)
17 Funding normalisation decided: identity on both venues
18 v1 aliasing decided: no
19 Batch and rate numbers decided: §13.1
21 Band reference price decided: the mid; §7.4a
22 Band sets per group decided: platform-wide; §7.4a
23 Book cadence decided: live
25 Kraken’s funding interval open: Kraken does not publish the interval. Leave funding_interval null, or record a documented venue constant (1h, provenance venue_documentation). Operator’s decision
26 capabilities_as_of open: decided in C4-03, absent from the code. Either every /v2 answer carries the registry instant it was resolved against, or the decision is withdrawn and §11.2 says the registry is always current
27 Which venues /v2 shows open: /v2 shows a venue only once its public code is published. Bybit and OKX are collected and invisible there. Either publishing is part of bringing a venue online, or the language shows collected venues and marks them unpublished

Deliberately absent from v1, with the reason. None of these is a gap to be filled quietly: each would change what a query means, so each needs a change set of its own.

Feature Why not yet
Boolean series and count_if(condition, n) A boolean series would need a second type of series with its own null rules; the useful cases (crossover, gaps) are already functions
Cross-instrument references (BTC-PERP.mark inside an ETH-PERP row) Evaluation is per instrument by construction (§5); a reference across instruments makes the universe a join and the cost unbounded
Sub-minute sampling The stored granularity is one second for snapshot layers, but a series at a sub-minute period would imply candles nobody published; snapshots/history with an interval answers the same question honestly
mark_sampled and other synthetic series A series built by DEBYKO from its own samples is not what a venue published, and the language’s rule is that a value is what a venue published
Spot instruments, trade-tape functions (VWAP, trade counts) Out of v1 scope; the grammar has room (market = spot, trades_1m) and the registry does not yet carry them
User-defined functions, variables, let A query is one expression on purpose: it can be printed, canonicalised, hashed and replayed