Chronolexography is an optional layer on RegelRecht.
packages/cel. That crate uses the law and the engine; nothing uses the crate.packages/cel out changes nothing else.A rulework contains no chronolexography vocabulary. The cell derives what it records from keys the law already has:
produces.submission on an article, or an item with a submission type: a chronolexogram of that kind arises. That article is its grondslag.produces those of the article are the ones the item lists under parameters; in the object form, all of them. The cell refuses a field no article asks.produces.moment: the moment that counts. It gets its own key, moment, and is no field. The cell fills it and refuses it from the applicant.outputs.A field left out that can be absent is null (RFC-036). One that cannot be absent goes under missing, because an incomplete application is still an application (Awb 4:5).
An article that also decides on its application lists the two under produces (RFC-047), and the application names the decision with requests. The cell records the application by running the stage AANVRAAG: the application and the hooks on it, not the decision.
This derivation belongs to the cell. Another runtime may record the same law in another way.
Which articles ask a field and which article computed an output follow from the law version in force on recorded_on. The chronolexogram does not store them.
One application, received on 13 October 2026 by a fictional school:
The keys follow an RFC-022 entry (§1.3): recording_actor, grondslag, fields. There is no intake, because the cell has none.
The cell assumes that the day of receipt (Awb 4:13 lid 1) is the day it records the application; the law does not say so.
The chronicle is append-only and refuses a chronolexogram dated before the last one.
extensions block per establishing article). It puts recording vocabulary in a rulework, and most of the block repeats the law.chronicles/ store (§1.3). Both drift from the law: an Awb article that asks one more thing does not reach the record until someone edits the list.field_basis and output_basis in an earlier draft). It repeats the law in every chronolexogram.packages/cel (regelrecht-cel): shape::derive reads the shape from the law through the engine. Cell::record_submission checks the values, executes the article and appends a chronolexogram. Chronicle keeps them in memory or in a JSON Lines file.An exploration into transparent, executable legislation, and one of the three projects in the starting selection of the Nederlandse Digitale Dienst.
GitHub repository
How it works
Stay informed
Roadmap (Dutch)
Documentation
Research
Nederlandse Digitale Dienst
Ministry of Economic Affairs and Climate Policy