Schema library

Ready-made transformation recipes: what they need on input, what they promise on output, checked against a real file every time the library itself is checked (`python3 -m smartetl.library check`).

City of Langley, CoL_Transportation.dwg: classification and outputA second publisher's schema from the registry (registry/datasets.json, id city-of-langley-transport, TRN_* layers). Before this task the registry only knew "read" with no numbers — the numbers were taken by this task on 2026-09-25 with a direct run, independent of the schema's own code.
known dataset: city-of-langley-transport.
On its reference input: 2416 features in → 2416 out.

short link: http://app.useswage.com/s/F4WQ0JHX

Township of Langley, Roads_CAD.dwg: classification and outputA publisher schema from the registry (registry/datasets.json, id langley-roads-cad): the drawing is recognized by a fingerprint of its layers and manner, not by a path or a file name. Classifies by the OSM model and writes both to GPKG (no loss) and to MapInfo TAB (height is known to be lost on 3355 of 7152 features — MapInfo TAB doesn't hold it, CLAUDE.md).
known dataset: langley-roads-cad.
On its reference input: 7152 features in → 7152 out.

short link: http://app.useswage.com/s/S6BP7MX4

Roads and transport by the OSM model: baseline classificationThe project's first scenario (scenarios/roads-osm.json), taken as a portable schema: classifies any drawing that has road-network layers and writes the result to GPKG. No paths and no one publisher's layer names live here — applies_to checks by model CLASSES, not by a specific dataset.
layers classified as: highway=residential, highway=service, highway=primary, highway=primary_link, highway=secondary, highway=tertiary, highway=unclassified.
On its reference input: 7152 features in → 7152 out.

short link: http://app.useswage.com/s/KD6QNZHJ

Transformer platform demo: filter + field mappingA portable version of pipelines/roads-transform-demo.json (docs/TRANSFORMERS.md, sections 3-4): drops the text warning layer "Disclaimer" and fills in a default where no feature carries the field at all. Both step parameters (the dataset name "Disclaimer", the field name "purpose") are specific to THIS dataset — so applies_to closes the schema with a fingerprint of a known dataset, not with classes: the rule itself isn't portable to a stranger's drawing, and applies_to says so honestly.
known dataset: langley-roads-cad.
On its reference input: 7152 features in → 7141 out.

short link: http://app.useswage.com/s/383ERY3D