vehicles 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +57 -7
- data/README.md +353 -69
- data/data/PROVENANCE-vehicles.md +2 -2
- data/data/plates/PROVENANCE.md +2 -2
- data/data/plates/_decode/at-districts.yml +2 -2
- data/data/plates/_decode/cn-issuing-offices.yml +2 -2
- data/data/plates/_decode/cn-provinces.yml +2 -2
- data/data/plates/_decode/cz-kraj.yml +1 -1
- data/data/plates/_decode/dk-serial-blocks.yml +1 -1
- data/data/plates/_decode/es-provinces.yml +1 -1
- data/data/plates/_decode/fr-departements.yml +2 -2
- data/data/plates/_decode/gb-age-identifiers.yml +1 -1
- data/data/plates/_decode/gb-memory-tags.yml +1 -1
- data/data/plates/_decode/gr-prefectures.yml +1 -1
- data/data/plates/_decode/hr-cities.yml +3 -3
- data/data/plates/_decode/ie-counties.yml +3 -3
- data/data/plates/_decode/in-state-codes.yml +2 -2
- data/data/plates/_decode/it-provinces.yml +3 -3
- data/data/plates/_decode/jp-office-marks.yml +2 -2
- data/data/plates/_decode/jp-use-marks.yml +2 -2
- data/data/plates/_decode/kr-authority-marks.yml +1 -1
- data/data/plates/_decode/mx-entity-series.yml +1 -1
- data/data/plates/_decode/my-index-marks.yml +4 -4
- data/data/plates/_decode/pt-trailer-services.yml +1 -1
- data/data/plates/_decode/ro-counties.yml +1 -1
- data/data/plates/_decode/se-diplomatic.yml +1 -1
- data/data/plates/_decode/si-regions.yml +1 -1
- data/data/plates/_decode/ua-regions.yml +1 -1
- data/data/plates/_meta/classes.yml +1 -1
- data/data/plates/_meta/separators.yml +1 -1
- data/data/plates/ad.yml +555 -52
- data/data/plates/ar.yml +8 -8
- data/data/plates/at.yml +91 -10
- data/data/plates/au-act.yml +13 -13
- data/data/plates/au-nsw.yml +9 -9
- data/data/plates/au-nt.yml +13 -14
- data/data/plates/au-qld.yml +7 -7
- data/data/plates/au-sa.yml +7 -7
- data/data/plates/au-tas.yml +10 -10
- data/data/plates/au-vic.yml +6 -6
- data/data/plates/au-wa.yml +8 -8
- data/data/plates/be.yml +11 -11
- data/data/plates/br.yml +14 -14
- data/data/plates/ca-ab.yml +10 -10
- data/data/plates/ca-bc.yml +6 -6
- data/data/plates/ca-mb.yml +4 -4
- data/data/plates/ca-nb.yml +9 -9
- data/data/plates/ca-nl.yml +11 -11
- data/data/plates/ca-ns.yml +12 -12
- data/data/plates/ca-nt.yml +7 -7
- data/data/plates/ca-nu.yml +7 -7
- data/data/plates/ca-on.yml +21 -21
- data/data/plates/ca-pe.yml +13 -13
- data/data/plates/ca-qc.yml +11 -11
- data/data/plates/ca-sk.yml +6 -6
- data/data/plates/ca-yt.yml +6 -6
- data/data/plates/ch.yml +14 -14
- data/data/plates/cn.yml +9 -9
- data/data/plates/cy.yml +6 -6
- data/data/plates/cz.yml +9 -9
- data/data/plates/de.yml +8 -8
- data/data/plates/dk.yml +12 -12
- data/data/plates/ee.yml +13 -13
- data/data/plates/eg.yml +708 -0
- data/data/plates/es.yml +8 -8
- data/data/plates/fi.yml +14 -14
- data/data/plates/fr.yml +12 -12
- data/data/plates/gb.yml +16 -16
- data/data/plates/gr.yml +14 -14
- data/data/plates/hr.yml +15 -15
- data/data/plates/hu.yml +16 -16
- data/data/plates/ie.yml +7 -7
- data/data/plates/in.yml +7 -7
- data/data/plates/is.yml +3 -3
- data/data/plates/it.yml +21 -21
- data/data/plates/jp.yml +121 -121
- data/data/plates/kr.yml +6 -6
- data/data/plates/li.yml +6 -6
- data/data/plates/lt.yml +10 -10
- data/data/plates/lu.yml +4 -4
- data/data/plates/lv.yml +9 -9
- data/data/plates/mc.yml +4 -4
- data/data/plates/mt.yml +5 -5
- data/data/plates/mx.yml +7 -7
- data/data/plates/my.yml +18 -18
- data/data/plates/ng.yml +346 -0
- data/data/plates/nl.yml +5 -5
- data/data/plates/no.yml +7 -7
- data/data/plates/nz.yml +18 -18
- data/data/plates/pl.yml +4 -4
- data/data/plates/pt.yml +13 -5
- data/data/plates/ro.yml +14 -14
- data/data/plates/se.yml +13 -13
- data/data/plates/si.yml +8 -8
- data/data/plates/sk.yml +15 -15
- data/data/plates/sm.yml +7 -7
- data/data/plates/th.yml +10 -10
- data/data/plates/tr.yml +432 -0
- data/data/plates/ua.yml +9 -9
- data/data/plates/us-ak.yml +11 -11
- data/data/plates/us-al.yml +12 -12
- data/data/plates/us-ar.yml +15 -15
- data/data/plates/us-as.yml +10 -10
- data/data/plates/us-az.yml +10 -10
- data/data/plates/us-ca.yml +13 -13
- data/data/plates/us-co.yml +14 -14
- data/data/plates/us-ct.yml +24 -24
- data/data/plates/us-dc.yml +7 -7
- data/data/plates/us-de.yml +10 -10
- data/data/plates/us-fl.yml +17 -17
- data/data/plates/us-ga.yml +10 -10
- data/data/plates/us-gu.yml +11 -11
- data/data/plates/us-hi.yml +11 -11
- data/data/plates/us-ia.yml +9 -9
- data/data/plates/us-id.yml +13 -13
- data/data/plates/us-il.yml +11 -11
- data/data/plates/us-in.yml +9 -9
- data/data/plates/us-ks.yml +8 -8
- data/data/plates/us-ky.yml +11 -11
- data/data/plates/us-la.yml +11 -11
- data/data/plates/us-ma.yml +10 -10
- data/data/plates/us-md.yml +7 -7
- data/data/plates/us-me.yml +16 -16
- data/data/plates/us-mi.yml +8 -8
- data/data/plates/us-mn.yml +13 -13
- data/data/plates/us-mo.yml +13 -13
- data/data/plates/us-mp.yml +12 -12
- data/data/plates/us-ms.yml +8 -8
- data/data/plates/us-mt.yml +12 -12
- data/data/plates/us-nc.yml +12 -12
- data/data/plates/us-nd.yml +10 -10
- data/data/plates/us-ne.yml +10 -10
- data/data/plates/us-nh.yml +8 -8
- data/data/plates/us-nj.yml +8 -8
- data/data/plates/us-nm.yml +14 -14
- data/data/plates/us-nv.yml +18 -18
- data/data/plates/us-ny.yml +17 -17
- data/data/plates/us-oh.yml +13 -13
- data/data/plates/us-ok.yml +12 -12
- data/data/plates/us-or.yml +15 -15
- data/data/plates/us-pa.yml +14 -14
- data/data/plates/us-pr.yml +15 -15
- data/data/plates/us-ri.yml +10 -10
- data/data/plates/us-sc.yml +7 -7
- data/data/plates/us-sd.yml +12 -12
- data/data/plates/us-tn.yml +8 -8
- data/data/plates/us-tx.yml +17 -17
- data/data/plates/us-ut.yml +12 -12
- data/data/plates/us-va.yml +14 -14
- data/data/plates/us-vi.yml +16 -16
- data/data/plates/us-vt.yml +9 -9
- data/data/plates/us-wa.yml +18 -18
- data/data/plates/us-wi.yml +8 -8
- data/data/plates/us-wv.yml +9 -9
- data/data/plates/us-wy.yml +10 -10
- data/data/plates/va.yml +7 -7
- data/data/plates/za.yml +11 -11
- data/data/vehicles.json +121081 -62015
- data/lib/generators/vehicles/templates/initializer.rb +21 -12
- data/lib/generators/vehicles/templates/vehicles_refresh_job.rb +8 -4
- data/lib/vehicles/color.rb +8 -1
- data/lib/vehicles/colors.rb +14 -10
- data/lib/vehicles/configuration.rb +82 -3
- data/lib/vehicles/data_source.rb +220 -0
- data/lib/vehicles/dataset.rb +38 -6
- data/lib/vehicles/dataset_resolution.rb +39 -3
- data/lib/vehicles/dataset_slice.rb +90 -0
- data/lib/vehicles/hosted_result.rb +94 -0
- data/lib/vehicles/http.rb +75 -7
- data/lib/vehicles/id_lookup.rb +37 -0
- data/lib/vehicles/kind_rule.rb +63 -0
- data/lib/vehicles/labels.rb +131 -0
- data/lib/vehicles/make.rb +45 -19
- data/lib/vehicles/model.rb +66 -19
- data/lib/vehicles/model_match.rb +16 -2
- data/lib/vehicles/model_matcher.rb +6 -7
- data/lib/vehicles/plates/series.rb +87 -8
- data/lib/vehicles/plates/template_fill.rb +2 -2
- data/lib/vehicles/plates/templates.rb +9 -5
- data/lib/vehicles/plates.rb +54 -8
- data/lib/vehicles/providers/hosted_provider.rb +145 -32
- data/lib/vehicles/providers/local_provider.rb +2 -2
- data/lib/vehicles/refresh_result.rb +74 -0
- data/lib/vehicles/refresher.rb +190 -54
- data/lib/vehicles/release_checks.rb +72 -0
- data/lib/vehicles/text_matcher.rb +19 -10
- data/lib/vehicles/validators/vehicle_make_validator.rb +18 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +17 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +119 -67
- data/rakelib/data_refresh.rake +1 -1
- data/rakelib/plates_refresh.rake +1 -1
- data/sig/vehicles.rbs +67 -13
- metadata +13 -2
data/data/plates/de.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# plates/de.yml — Germany (
|
|
1
|
+
# plates/de.yml — Germany (the plates spec gate L0 pilot).
|
|
2
2
|
#
|
|
3
3
|
# EVERY format, colour and class claim here comes from the consolidated
|
|
4
4
|
# Fahrzeug-Zulassungsverordnung (FZV) of 20 July 2023, BGBl. 2023 I Nr. 199,
|
|
@@ -272,7 +272,7 @@ common:
|
|
|
272
272
|
licence: >-
|
|
273
273
|
NO LICENSABLE FONT IS MANDATED. The legal object is a statutory
|
|
274
274
|
Schriftmuster (a drawing), exactly as the EU dossier found for the UK and
|
|
275
|
-
Spain. Per
|
|
275
|
+
Spain. Per the plates spec §6 the render layer derives glyphs from the
|
|
276
276
|
statutory drawing, never from a third-party FE-Schrift TTF whose own
|
|
277
277
|
licence is unstated. Germany is additionally the affirmatively favourable
|
|
278
278
|
case (PD-VzKat / §5(1) UrhG: designs published inside statutory
|
|
@@ -302,7 +302,7 @@ common:
|
|
|
302
302
|
source: "https://www.gesetze-im-internet.de/fzv_2023/anlage_1.html # Anlage 1 (zu § 9 Absatz 1 Satz 4), Fundstelle BGBl. 2023 I Nr. 199, S. 67 — the five shapes and the umlaut exclusion, verbatim"
|
|
303
303
|
|
|
304
304
|
# Anlage 2 FZV — the SMALL, CLOSED, primary code table (contrast the district
|
|
305
|
-
# list, which is not in the FZV at all). Inlined per
|
|
305
|
+
# list, which is not in the FZV at all). Inlined per the plates spec §2.4's
|
|
306
306
|
# "inline table (small) or a reference (large)" rule.
|
|
307
307
|
region_encoding_tables:
|
|
308
308
|
anlage2_federal_and_diplomatic:
|
|
@@ -395,7 +395,7 @@ series:
|
|
|
395
395
|
foreground: "#000000"
|
|
396
396
|
border: { color: "#000000", note: "Anlage 4 permits black, GREEN or RED borders depending on plate type" }
|
|
397
397
|
band: { side: left, color: "#003399", content: eu-stars+D, hex_basis: observed, note: "the FZV states the star-wreath ratio and cross-references Reg. 2411/98 for the 'D', but gives no RGB/RAL for the blue field" }
|
|
398
|
-
emblem: { present: true, rendered: placeholder, note: "the Stempelplakette carries the FARBIGES WAPPEN DES LANDES (§ 12 Abs. 3) — a coat of arms per Land.
|
|
398
|
+
emblem: { present: true, rendered: placeholder, note: "the Stempelplakette carries the FARBIGES WAPPEN DES LANDES (§ 12 Abs. 3) — a coat of arms per Land. The plates spec §3 placeholder rule applied at write time; SUPERSEDED 2026-08-03: ALL 16 Land arms are licence-cleared in plates/_art/de-<land>/ (PD family, extmetadata-verified, ledgered) — depiction consumers may render the coloured arms in the seal. The remaining gap is the district→Land mapping (the future de-districts table) for serial-driven resolution." }
|
|
399
399
|
seal: { name: Stempelplakette, diameter_mm: null, content: "coloured Land arms, Land name, registration authority name, unique Druckstücknummer, and a CONCEALED security code that can only be revealed irreversibly; self-destroying on removal", source_note: "§ 12 Abs. 3 FZV + Anlage 5" }
|
|
400
400
|
rear_differs: false
|
|
401
401
|
display: "front and rear on motor vehicles; rear only on trailers, motorcycles and class L5e vehicles; front only on single-axle tractors (§ 12 Abs. 5 FZV)"
|
|
@@ -669,7 +669,7 @@ series:
|
|
|
669
669
|
Nr. 4: in the Betriebszeitraum field, "die Zahl über dem Bindestrich" is the
|
|
670
670
|
start month and "die Zahl unter dem Bindestrich" the end month, set in
|
|
671
671
|
DIN 1451-2:1986-02. A single `pattern` string cannot carry a stacked
|
|
672
|
-
two-number field — this is the same schema pressure
|
|
672
|
+
two-number field — this is the same schema pressure the plates spec §2.2 records
|
|
673
673
|
for Japan, arriving in Germany.
|
|
674
674
|
design:
|
|
675
675
|
plate: { w: 520, h: 110, unit: mm }
|
|
@@ -702,7 +702,7 @@ series:
|
|
|
702
702
|
pages is partial) — recorded gap, deliberately not asserted. Its own
|
|
703
703
|
series rather than a variant because the DESIGN differs (an added
|
|
704
704
|
operating-period field) while the serial grammar does not — the
|
|
705
|
-
|
|
705
|
+
the plates spec §2.3 test resolves cleanly. It composes with other classes:
|
|
706
706
|
green plates (§ 10 Abs. 2), Oldtimerkennzeichen and E-Kennzeichen can
|
|
707
707
|
all be issued AS seasonal plates, which means class is genuinely
|
|
708
708
|
multi-valued here and the single-`class` schema cannot express the
|
|
@@ -1008,7 +1008,7 @@ series:
|
|
|
1008
1008
|
table, not for this series' start. Two facts a decode table must carry,
|
|
1009
1009
|
both verbatim from Anlage 2 (2023): BG (Bundespolizei) is "noch gültig,
|
|
1010
1010
|
wird nicht mehr zugeteilt" — still valid, no longer assigned, exactly
|
|
1011
|
-
the ended-but-on-the-road case
|
|
1011
|
+
the ended-but-on-the-road case the plates spec's `ended: true` semantics
|
|
1012
1012
|
exist for at the series level and that decode rows need at the row
|
|
1013
1013
|
level. And the CONSULAR case has no code of its own: career consular
|
|
1014
1014
|
posts carry "das Unterscheidungszeichen des Verwaltungsbezirkes am Sitz
|
|
@@ -1035,7 +1035,7 @@ series:
|
|
|
1035
1035
|
foreground: "#000000"
|
|
1036
1036
|
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
1037
1037
|
region_encoding: inline
|
|
1038
|
-
region_encoding_note: "prefix decode in region_encoding_tables.anlage2_federal_and_diplomatic.diplomatic; the mission-number sub-decode is NOT authored (
|
|
1038
|
+
region_encoding_note: "prefix decode in region_encoding_tables.anlage2_federal_and_diplomatic.diplomatic; the mission-number sub-decode is NOT authored (the plates spec puts diplomatic decode tables at L4)"
|
|
1039
1039
|
sources:
|
|
1040
1040
|
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_2.html # Anlage 2 Nr. 3: '0, B oder BN — Diplomatische Vertretungen oder internationale Organisationen und in Abhängigkeit vom Status der bevorrechtigten Person', registered at Berlin or Bonn"
|
|
1041
1041
|
- "https://www.gesetze-im-internet.de/fzv_2023/__9.html # § 9 Abs. 1 Satz 6-7"
|
data/data/plates/dk.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# plates/dk.yml — Denmark (
|
|
1
|
+
# plates/dk.yml — Denmark (the plates spec gate L1, wave 2).
|
|
2
2
|
#
|
|
3
3
|
# WHAT IS PRIMARY HERE, AND WHAT IS NOT. Every claim in this file names its
|
|
4
4
|
# layer, and the layers are:
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
# letter alphabet, the blocked two-letter combinations, and the
|
|
33
33
|
# ønskenummerplade's 1992 start.
|
|
34
34
|
#
|
|
35
|
-
# THE FOUR DATES THIS FILE EXISTS TO GET RIGHT (
|
|
35
|
+
# THE FOUR DATES THIS FILE EXISTS TO GET RIGHT (the plates spec §9: era boundaries
|
|
36
36
|
# are folklore-prone; each of these is dated to the DAY by an instrument's own
|
|
37
37
|
# commencement clause, and each replaces a vaguer number in circulation):
|
|
38
38
|
#
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
# names colours in WORDS ("hvid/sort/rød") and never gives a value.
|
|
79
79
|
# Consequently EVERY hex below is `hex_basis: observed` and indicative.
|
|
80
80
|
# * NO FONT. No typeface is named or drawn anywhere in the instrument, so
|
|
81
|
-
# per
|
|
81
|
+
# per the plates spec §6 there is no licensable font to clear and no statutory
|
|
82
82
|
# Schriftmuster to derive glyphs from; the schematic fallback applies.
|
|
83
83
|
# * NO PUBLISHED SERIES REGISTER. § 68, stk. 3 delegates: "Skatteforvaltningen
|
|
84
84
|
# kan inddele registreringsnumre i serier efter køretøjers art eller
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
# regler om mærkning af køretøjer med særlige nummerplader eller mærkater."
|
|
111
111
|
#
|
|
112
112
|
# SEPARATOR POLICY: the printed gaps on a Danish plate are GAPS, not glyphs —
|
|
113
|
-
# no Danish instrument prescribes any separator character. Per
|
|
113
|
+
# no Danish instrument prescribes any separator character. Per the plates spec §2.6
|
|
114
114
|
# they are written as the emitted SPACE in `pattern` and as an optional " ?" in
|
|
115
115
|
# every regex. SKAT's catalogue renders the five-digit car number as two groups
|
|
116
116
|
# ("AF 22 454"), which is why the canonical printed form here is "LL 99 999".
|
|
@@ -306,7 +306,7 @@ common:
|
|
|
306
306
|
swatches. This is the posture se.yml records for Sweden and de.yml for
|
|
307
307
|
the German "grünes Kennzeichen"; it is not a defect in the pass.
|
|
308
308
|
font_note: >-
|
|
309
|
-
NO TYPEFACE IS MANDATED and no statutory drawing exists. Per
|
|
309
|
+
NO TYPEFACE IS MANDATED and no statutory drawing exists. Per the plates spec
|
|
310
310
|
§6 the render layer therefore has neither a licence to clear nor a
|
|
311
311
|
Schriftmuster to derive from; the schematic fallback applies and the gap
|
|
312
312
|
is recorded here rather than papered over with a lookalike TTF.
|
|
@@ -389,7 +389,7 @@ series:
|
|
|
389
389
|
a separator character. SKAT's catalogue renders the five-digit number
|
|
390
390
|
as two groups ("AF 22 454"), which is the canonical printed form used
|
|
391
391
|
here; the regex accepts the space or its absence at both positions per
|
|
392
|
-
|
|
392
|
+
the plates spec §2.6.
|
|
393
393
|
design:
|
|
394
394
|
plate: { w: 504, h: 120, unit: mm }
|
|
395
395
|
plate_variants:
|
|
@@ -485,7 +485,7 @@ series:
|
|
|
485
485
|
registreringsafgiftsloven and lov om vægtafgift af motorkøretøjer m.v.
|
|
486
486
|
This file records the REGISTERED USE, which is what the plate colour
|
|
487
487
|
tracks, and does not restate rates — rates change and are outside
|
|
488
|
-
|
|
488
|
+
the plates spec §2.5's scope.
|
|
489
489
|
region_encoding: "plates/_decode/dk-serial-blocks.yml"
|
|
490
490
|
region_encoding_file: dk-serial-blocks.yml
|
|
491
491
|
sources:
|
|
@@ -886,11 +886,11 @@ series:
|
|
|
886
886
|
narrower than the regex above — and that grammar cannot be written.
|
|
887
887
|
The human-pattern DSL spells a digit position as "9", so a LITERAL 9
|
|
888
888
|
is unspellable, and any regex fixing the leading 9 fails the
|
|
889
|
-
round-trip against every pattern the DSL can express (
|
|
889
|
+
round-trip against every pattern the DSL can express (the plates spec
|
|
890
890
|
§5.2). The diplomatic series escape the same trap only because their
|
|
891
891
|
block starts 76/77, whose digits are not the token. `regex` is
|
|
892
892
|
therefore deliberately wider than what this series issues — a match
|
|
893
|
-
is a shape hit, not a taxi claim — and per
|
|
893
|
+
is a shape hit, not a taxi claim — and per the plates spec §2.7 that is
|
|
894
894
|
`recall-only`, which in turn forbids a `regex_strict`. The block
|
|
895
895
|
lives in `format.block` and in plates/_decode/dk-serial-blocks.yml,
|
|
896
896
|
where a parse API should read it.
|
|
@@ -1434,7 +1434,7 @@ series:
|
|
|
1434
1434
|
registered on ordinary yellow commercial plates; SKAT's 2012 catalogue
|
|
1435
1435
|
still stocks the dedicated plate, so this file records the dedicated plate
|
|
1436
1436
|
as open and flags the conflict rather than resolving it — the sources
|
|
1437
|
-
disagree and
|
|
1437
|
+
disagree and the plates spec §5.3 says record, do not average.
|
|
1438
1438
|
|
|
1439
1439
|
# =========================================================================
|
|
1440
1440
|
# LUFTHAVNSPLADER — airside-only plates. Included because SKAT stocks them,
|
|
@@ -1538,7 +1538,7 @@ series:
|
|
|
1538
1538
|
|
|
1539
1539
|
# ---------------------------------------------------------------------------
|
|
1540
1540
|
# GAPS — what this pass could NOT establish. Recorded here because a stated
|
|
1541
|
-
# gap is a finding and a silent one is a defect (
|
|
1541
|
+
# gap is a finding and a silent one is a defect (the plates spec §5.1
|
|
1542
1542
|
# jurisdiction-completeness).
|
|
1543
1543
|
# ---------------------------------------------------------------------------
|
|
1544
1544
|
gaps:
|
|
@@ -1552,7 +1552,7 @@ gaps:
|
|
|
1552
1552
|
U+002E is in _meta/separators.yml's `forgiving` set but NOT in its
|
|
1553
1553
|
`emitted` set, so the dataset cannot spell this plate's printed form
|
|
1554
1554
|
without either failing the lint or misrepresenting the plate by writing a
|
|
1555
|
-
hyphen or a space in place of the stop. Per
|
|
1555
|
+
hyphen or a space in place of the stop. Per the plates spec §2.6 that is a
|
|
1556
1556
|
schema amendment (a `never_separator` entry, or an addition to `emitted`
|
|
1557
1557
|
with its rationale), not a data entry, and it is out of scope for a
|
|
1558
1558
|
jurisdiction pass. No Forsvarsministeriet instrument was located.
|
data/data/plates/ee.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# plates/ee.yml — Estonia (
|
|
1
|
+
# plates/ee.yml — Estonia (the plates spec gate L1, EU/EEA wave 2). DRAFT for
|
|
2
2
|
# verification: researched by an Opus L1 researcher, never applied directly.
|
|
3
3
|
#
|
|
4
4
|
# THE ESTONIAN SOURCE CHAIN, AND WHY THE CURRENT LAYER IS UNUSUALLY CLEAN
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
# reads "520x113" for A1, A2, A4, A5, A8, A10, D1, E2 and A12; the drawings
|
|
46
46
|
# in Lisa 3 dimension the same 113 mm height (10,5 + 77 + 11,5 + border).
|
|
47
47
|
# The 110 mm figure that circulates for Estonia is NOT what the instrument
|
|
48
|
-
# says. This is recorded, not averaged (
|
|
48
|
+
# says. This is recorded, not averaged (the plates spec §5.3).
|
|
49
49
|
#
|
|
50
50
|
# 3. THE TRANSIT PLATE'S GROUND IS "VÄRVITU" — COLOURLESS, NOT WHITE. Lisa 1
|
|
51
51
|
# gives D1 and D2 "Värvitu aluspõhi, punased sümbolid". Every other white
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
# distinguishes them. On A1 the groups are divided by a GAP whose width is
|
|
88
88
|
# specified as a field boundary in Lisa 3 (25 mm between the digit field and
|
|
89
89
|
# the letter field) with no glyph — spelled here as a space, per
|
|
90
|
-
#
|
|
90
|
+
# the plates spec §2.6. On D1/D2 the transit plates a HYPHEN IS DRAWN, and Lisa 3
|
|
91
91
|
# dimensions it explicitly (44 mm wide x 11 mm high on D1) — so those patterns
|
|
92
92
|
# spell a literal "-". Same dataset, two honest separators, both from drawings.
|
|
93
93
|
jurisdiction: ee
|
|
@@ -159,13 +159,13 @@ common:
|
|
|
159
159
|
Estonian-specific letters (Õ Ä Ö Ü) appear in any näidis, so unlike
|
|
160
160
|
Finland's 29-glyph annex there is no Å/Ä/Ö question here — the Estonian
|
|
161
161
|
repertoire as drawn is A-Z and 0-9, which is exactly the dataset's serial
|
|
162
|
-
alphabet (
|
|
162
|
+
alphabet (the plates spec §2.6). This is a rare clean fit and is stated so it
|
|
163
163
|
is not mistaken for an assumption.
|
|
164
164
|
glyph_standard: >-
|
|
165
165
|
§ 3(6): the symbol images must conform to "Eesti standardi EVS 597:2004
|
|
166
166
|
lisale B" AND to the Lisa 3 drawings. EVS 597:2004 is a purchasable
|
|
167
167
|
Estonian standard and its text is NOT pinned in this pass (the same
|
|
168
|
-
posture
|
|
168
|
+
posture the plates spec §4 takes to SAE J686) — recorded as a gap. The
|
|
169
169
|
drawings in Lisa 3 are free and are what the render layer derives from.
|
|
170
170
|
stroke_widths: >-
|
|
171
171
|
§ 3(4), verbatim: "Registreerimismärkidel kasutatavate sümbolite joonte
|
|
@@ -277,7 +277,7 @@ common:
|
|
|
277
277
|
tüüp 1 (49 mm, 7 mm stroke), tüüp 2 (77 mm, 11 mm stroke), tüüp 3 (49 mm,
|
|
278
278
|
7 mm stroke) and tüüp 4 (77 mm, 11 mm stroke). Tüüp 1/2 and tüüp 3/4 pair
|
|
279
279
|
by height but differ in width table (Lisa 2), tüüp 3/4 being the narrower
|
|
280
|
-
condensed cut. Exactly the UK/DE/ES/FI pattern of
|
|
280
|
+
condensed cut. Exactly the UK/DE/ES/FI pattern of the plates spec §6: the legal
|
|
281
281
|
object is a drawing plus a width table, not a licensable typeface.
|
|
282
282
|
symbol_sizes: >-
|
|
283
283
|
Lisa 2 Tabel 1 (heights, then widths for digits 1 / 3 / all others and
|
|
@@ -314,7 +314,7 @@ region_encoding_gap:
|
|
|
314
314
|
region. Those two statements are not consistent with each other, no primary
|
|
315
315
|
was located for either, and the pre-2019 office-letter mapping appears in
|
|
316
316
|
that article as a TABLE. Shipping a decode table on that evidence would
|
|
317
|
-
manufacture precision the sources do not carry, and
|
|
317
|
+
manufacture precision the sources do not carry, and the plates spec §2.4 warns
|
|
318
318
|
in terms that a decode table which cannot state its own reliability will
|
|
319
319
|
make the parse API lie (the France/SIV finding).
|
|
320
320
|
what_would_close_it: >-
|
|
@@ -362,7 +362,7 @@ out_of_scope:
|
|
|
362
362
|
detail: >-
|
|
363
363
|
§ 3(6) binds the symbol images to "Eesti standardi EVS 597:2004 lisale B"
|
|
364
364
|
as well as to Lisa 3. EVS 597:2004 is sold by the Estonian Centre for
|
|
365
|
-
Standardisation and its text was not purchased for this pass.
|
|
365
|
+
Standardisation and its text was not purchased for this pass. The plates spec
|
|
366
366
|
§4's SAE J686 posture applies verbatim: never quote the standard's
|
|
367
367
|
dimensions except via a free instrument. Everything this file states about
|
|
368
368
|
glyph geometry comes from Lisa 2 and Lisa 3, both free.
|
|
@@ -449,7 +449,7 @@ series:
|
|
|
449
449
|
NO separator GLYPH is prescribed. § 3(1) puts the digits and the letters
|
|
450
450
|
in two SEPARATE FIELDS and näidis 1 dimensions the boundary between them
|
|
451
451
|
at 25 mm (digit field 157 max, letter field 225 max, inside a 520 mm
|
|
452
|
-
plate). Spelled here as a space per
|
|
452
|
+
plate). Spelled here as a space per the plates spec §2.6 rule 2. § 3(2) adds
|
|
453
453
|
the alignment: digits flush LEFT in the digit field, letters flush RIGHT
|
|
454
454
|
in the letter field, symbols at most 28 mm apart within a field.
|
|
455
455
|
design:
|
|
@@ -611,7 +611,7 @@ series:
|
|
|
611
611
|
recolours whatever mark the vehicle would otherwise carry. Modelled as its
|
|
612
612
|
own series rather than a colour variant because the DESIGN differs and the
|
|
613
613
|
issuing CLASS differs (tähtajaline registreerimine — time-limited
|
|
614
|
-
registration), which
|
|
614
|
+
registration), which the plates spec §2.3 makes sufficient. Its dimensions and
|
|
615
615
|
band are inherited from A1 and are a RECORDED INFERENCE: the instrument
|
|
616
616
|
does not restate them for this variant. Distinct from ee-transit-d1/d2,
|
|
617
617
|
which are a different class with a different format and their own drawings.
|
|
@@ -865,7 +865,7 @@ series:
|
|
|
865
865
|
The same invariant PROOV and four digits as A8. The pattern spells NO
|
|
866
866
|
separator because none is printed: näidis 18 is a TWO-ROW plate with
|
|
867
867
|
PROOV on the upper row (215 mm field) and the digits on the lower
|
|
868
|
-
(134 mm field), which
|
|
868
|
+
(134 mm field), which the plates spec §2.6 collapses to one canonical
|
|
869
869
|
serial — the same two-printed-forms/one-mark situation fi.yml records
|
|
870
870
|
for Finnish two-row plates.
|
|
871
871
|
design:
|
|
@@ -975,7 +975,7 @@ series:
|
|
|
975
975
|
CO-OCCURRENCE is forbidden, which a one-letter group cannot produce. The
|
|
976
976
|
twin is therefore narrower than the law and a verifier should relax it to
|
|
977
977
|
'\A(?!W)[A-Z] \d{3}\z'. Recorded rather than silently corrected because
|
|
978
|
-
the researcher-verifier split (
|
|
978
|
+
the researcher-verifier split (the plates spec §5.3) is the point.
|
|
979
979
|
|
|
980
980
|
# =========================================================================
|
|
981
981
|
# L-CATEGORY. Lisa 1: B1 and B3 kirja tüüp 3, 177x101. B1 white/black,
|
|
@@ -1222,7 +1222,7 @@ series:
|
|
|
1222
1222
|
- "https://www.riigiteataja.ee/aktilisa/1030/6202/2012/MKM_m45_lisa3.pdf # näidis 16 — two-row '6269 / EO', plate 212 x 135, rows 49 mm + 9 mm + 49 mm"
|
|
1223
1223
|
notes: >-
|
|
1224
1224
|
THE TWO-ROW TRACTOR PLATE. Same mark as ee-agricultural-e2, different
|
|
1225
|
-
blank and layout, therefore a separate series under
|
|
1225
|
+
blank and layout, therefore a separate series under the plates spec §2.3
|
|
1226
1226
|
(design differs) — and separately useful to a consumer because the printed
|
|
1227
1227
|
form has no separator to forgive. Overlaps ee-agricultural-e2 in period
|
|
1228
1228
|
and categories because Lisa 1 offers the two sizes as alternatives for the
|