vehicles 0.4.1 → 0.8.0
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/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +321 -0
- data/README.md +88 -15
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +10 -0
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/es-provinces.yml +116 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +26 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +1107 -0
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +888 -0
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +1016 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +741 -0
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +18 -2
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +42 -6
- data/lib/vehicles/plates/jurisdiction.rb +32 -0
- data/lib/vehicles/plates/series.rb +291 -0
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +122 -0
- data/lib/vehicles/providers/hosted_provider.rb +49 -58
- data/lib/vehicles/providers/local_provider.rb +4 -3
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +53 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +174 -2
data/data/plates/li.yml
ADDED
|
@@ -0,0 +1,1010 @@
|
|
|
1
|
+
# plates/li.yml — Liechtenstein (PRD-PLATES gate L1, microstates group).
|
|
2
|
+
# DRAFT for verification. All primary text fetched from gesetze.li 2026-08-02.
|
|
3
|
+
#
|
|
4
|
+
# ---------------------------------------------------------------------------
|
|
5
|
+
# THIS IS A PRIMARY-SOURCED FILE. Liechtenstein has the best legal archive of
|
|
6
|
+
# the five microstates in this group: gesetze.li (Lilex) serves both the
|
|
7
|
+
# consolidated Landesrecht (LR) and the Landesgesetzblatt (LGBl) back to the
|
|
8
|
+
# 19th century, so nearly every claim below is quoted from an instrument.
|
|
9
|
+
# The instruments read in this pass:
|
|
10
|
+
# * VZV — Verkehrszulassungsverordnung, LR 741.51, vom 1. August 1978,
|
|
11
|
+
# LGBl. 1978 Nr. 20 (ausgegeben 31. August 1978), in force 1. September
|
|
12
|
+
# 1978. Art. 71-76 are the plate chapter; Art. 82 the moped plate.
|
|
13
|
+
# https://www.gesetze.li/konso/1978.020
|
|
14
|
+
# * VVV — Verkehrsversicherungsverordnung, LR 741.31, vom 1. August 1978,
|
|
15
|
+
# LGBl. 1978 Nr. 21. Anhang 1a (zu Art. 19) is the provisional-plate spec
|
|
16
|
+
# and the ONLY source for the customs "Z".
|
|
17
|
+
# * The 1924 decree that started the FL series: Vollziehungs-Verordnung vom
|
|
18
|
+
# 4. Dezember 1924 zum Gesetze vom 10. Mai 1924 (LGBl. 1924 Nr. 6)
|
|
19
|
+
# betreffend den Verkehr mit Fahrzeugen, LR 741.011, LGBl. 1924 Nr. 20,
|
|
20
|
+
# ausgegeben 6. Dezember 1924, IN FORCE 1. JANUAR 1925.
|
|
21
|
+
# * The 1915 decree behind it: Verordnung vom 12. August 1915 betreffend die
|
|
22
|
+
# Lenkung und Kennzeichnung der Kraftfahrzeuge, LR 741.5, LGBl. 1915
|
|
23
|
+
# Nr. 13, ausgegeben 18. August 1915.
|
|
24
|
+
# * Wappengesetz vom 30. Juni 1982, LR 120, LGBl. 1982 Nr. 58, for the arms.
|
|
25
|
+
# * LGBl. 2020 Nr. 349 and LGBl. 2021 Nr. 307 — the two amendments that date
|
|
26
|
+
# the modern colour system and the red repeater plate.
|
|
27
|
+
#
|
|
28
|
+
# ---------------------------------------------------------------------------
|
|
29
|
+
# FIVE STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
30
|
+
# ---------------------------------------------------------------------------
|
|
31
|
+
#
|
|
32
|
+
# 1. THE INSTRUMENT-DATE RULE, TWICE, IN TEXTBOOK FORM. Liechtenstein is the
|
|
33
|
+
# jurisdiction in this group where the trap is most visible, and both cases
|
|
34
|
+
# are resolved from the instruments themselves:
|
|
35
|
+
# (a) THE FL SERIES. The decree is dated 4 December 1924 and was published
|
|
36
|
+
# on 6 December 1924 — but its own closing article reads "Diese
|
|
37
|
+
# Verordnung tritt am 1. Januar 1925 in Kraft." The FL series
|
|
38
|
+
# therefore starts in 1925, NOT 1924. Every secondary account of
|
|
39
|
+
# Liechtenstein plates dates the system to "1924"; the instrument
|
|
40
|
+
# says otherwise, and the instrument is the authority.
|
|
41
|
+
# (b) THE RED REPEATER PLATE. The amending ordinance is dated 5 October
|
|
42
|
+
# 2021 and was published 8 October 2021, but it split its own
|
|
43
|
+
# commencement: "Diese Verordnung tritt vorbehaltlich Abs. 2 am
|
|
44
|
+
# 1. November 2021 in Kraft. 2) Art. 69 Abs. 6, Art. 71 Abs. 1 Bst. g
|
|
45
|
+
# und Abs. 4 sowie Art. 72 Abs. 3 Bst. d treten am 1. März 2022 in
|
|
46
|
+
# Kraft." The plate provisions commence 1 March 2022 — four months
|
|
47
|
+
# after the rest of the same instrument. Shipping either the signature
|
|
48
|
+
# date or the general commencement date would be wrong.
|
|
49
|
+
#
|
|
50
|
+
# 2. THE COLOUR SYSTEM IS ONLY 2021 LAW, THOUGH THE PLATES ARE MUCH OLDER —
|
|
51
|
+
# and this is the subtlest dating fact in the file. VZV Art. 71 Abs. 1 today
|
|
52
|
+
# is a closed seven-colour enumeration. In the ORIGINAL 1978 text it named
|
|
53
|
+
# plate TYPES with no colours at all, and Abs. 4 delegated them: "Die
|
|
54
|
+
# Regierung legt die Grund- und Schriftfarbe der Kontrollschilder fest."
|
|
55
|
+
# The enumeration was written into the ordinance by LGBl. 2020 Nr. 349
|
|
56
|
+
# (Verordnung vom 17. November 2020, in force 1. Januar 2021). So a colour
|
|
57
|
+
# claim below is INSTRUMENT-GRADE from 2021 and AGENCY-GRADE before it, and
|
|
58
|
+
# each series says which. The plates themselves are far older than 2021 —
|
|
59
|
+
# treating 2021 as a series start would be exactly the Spanish error.
|
|
60
|
+
#
|
|
61
|
+
# 3. THE PLATE BINDS TO THE HALTER, AND HAS DONE SINCE 1924. VZV Art. 76
|
|
62
|
+
# Abs. 1: "Die einmal zugeteilte Schildnummer bleibt für den Halter
|
|
63
|
+
# reserviert." Abs. 5: the plates "bleiben Eigentum des Staates". The 1924
|
|
64
|
+
# decree already said it, in Art. 30 Abs. 2: "Diese Schilder werden der
|
|
65
|
+
# Person des Wageneigentümers zugeteilt und sind nicht übertragbar." That is
|
|
66
|
+
# a hundred years of unbroken owner-binding, quotable at both ends. Hence
|
|
67
|
+
# `binding: owner`. A vehicle-keyed consumer must not join on a Liechtenstein
|
|
68
|
+
# plate.
|
|
69
|
+
#
|
|
70
|
+
# 4. LIECHTENSTEIN'S PLATE LAW IS AUTONOMOUS — SWISS LAW IS *NOT* INCORPORATED.
|
|
71
|
+
# This was tested rather than assumed, because the customs union and the
|
|
72
|
+
# near-identical drafting invite the opposite conclusion. Liechtenstein
|
|
73
|
+
# enacts its own full-text ordinances and MIRRORS the Swiss LR numbering
|
|
74
|
+
# (VZV 741.51, VVV 741.31, VTS 741.41 — the same numbers as the Swiss SR),
|
|
75
|
+
# which makes the convergence look like incorporation. It is not. The VZV's
|
|
76
|
+
# enabling clause is purely domestic ("Aufgrund von Art. 11 bis 14, 23,
|
|
77
|
+
# 50 Abs. 3, Art. 51, 53 und 99 des Strassenverkehrsgesetzes (SVG) vom
|
|
78
|
+
# 30. Juni 1978, LGBl. 1978 Nr. 18"); Art. 2 defines VVV/VTS/VRV as the
|
|
79
|
+
# LIECHTENSTEIN ordinances; and a sweep of the VZV, VTS and SVG for
|
|
80
|
+
# "schweizerisch|Schweiz" finds Swiss law incorporated only in narrow named
|
|
81
|
+
# domains — the Swiss motor-vehicle tax, ASTRA type-approval reporting, the
|
|
82
|
+
# heavy-vehicle charge and cross-border insurance — and NEVER for plates.
|
|
83
|
+
# CONSEQUENCE, and it is a rule for this file: no Swiss instrument is cited
|
|
84
|
+
# for a Liechtenstein fact anywhere below. The resemblance to ch.yml is a
|
|
85
|
+
# drafting fact, not a legal one.
|
|
86
|
+
#
|
|
87
|
+
# 5. THE NUMBER RANGES ARE NOT IN THE LAW. Every range in circulation —
|
|
88
|
+
# FL 1-20 for official vehicles, FL 101-300 for dealers, FL 50000-50299 for
|
|
89
|
+
# day plates, FL 90000-92999 for provisional, the yellow motorcycle block —
|
|
90
|
+
# is ABSENT from the VZV. Art. 73 Abs. 2 mandates only that numbering run
|
|
91
|
+
# separately per vehicle family and per plate type "in aufsteigender
|
|
92
|
+
# Reihenfolge". The ranges live in the Amt für Strassenverkehr's "Weisungen
|
|
93
|
+
# über die Kontrollschilder" (1 January 2015), a sub-legal instrument. NO
|
|
94
|
+
# RANGE IS ASSERTED AS LAW IN THIS FILE; where a range appears it is marked
|
|
95
|
+
# agency-level or is omitted.
|
|
96
|
+
#
|
|
97
|
+
# ---------------------------------------------------------------------------
|
|
98
|
+
# REGEX POLICY (PRD-PLATES §2.7 tiers)
|
|
99
|
+
# ---------------------------------------------------------------------------
|
|
100
|
+
# regex the printed form: literal FL, an optional separator, and
|
|
101
|
+
# 1-5 digits. THE DIGIT CEILING IS NOT IN THE ORDINANCE —
|
|
102
|
+
# see common.numbering.digit_ceiling.
|
|
103
|
+
# regex_statutory drops the ceiling to \d+, because that is the honest outer
|
|
104
|
+
# legal bound: no provision caps the Kontrollnummer.
|
|
105
|
+
# regex_strict used only where a digit WIDTH is actually sourced — which
|
|
106
|
+
# happens exactly once, on the moped plate, where Art. 82
|
|
107
|
+
# Abs. 6 says "die 5-stelligen Kontrollschildnummern".
|
|
108
|
+
#
|
|
109
|
+
# period_evidence VOCABULARY used in this file:
|
|
110
|
+
# instrument-in-force the instrument's own commencement date
|
|
111
|
+
# instrument-in-force-upper-bound the earliest instrument READ carrying the
|
|
112
|
+
# series; earlier ones exist and were not
|
|
113
|
+
# read, so the start is an UPPER bound
|
|
114
|
+
# instrument-dated-both-ends start AND end each fixed by an instrument
|
|
115
|
+
# statutory-date a date stated in the instrument's text
|
|
116
|
+
# secondary-wikipedia WIKIPEDIA-DERIVED (mandatory tag)
|
|
117
|
+
#
|
|
118
|
+
# All of these except `secondary-wikipedia` are values already in use across
|
|
119
|
+
# plates/*.yml; the field is open and descriptive, and nothing is coined here.
|
|
120
|
+
# `secondary-wikipedia` is the mandatory tag for Wikipedia-derived facts and is
|
|
121
|
+
# used in this file only on the 1915 colour claim, which is the single
|
|
122
|
+
# non-instrument fact in the whole dossier.
|
|
123
|
+
#
|
|
124
|
+
# format_evidence VOCABULARY: statutory | agency-weisung | secondary-wikipedia
|
|
125
|
+
# ---------------------------------------------------------------------------
|
|
126
|
+
jurisdiction: li
|
|
127
|
+
authority:
|
|
128
|
+
name: Amt für Strassenverkehr (ASV), Fürstentum Liechtenstein — Verkehrszulassungsverordnung (VZV), LR 741.51
|
|
129
|
+
url: "https://www.gesetze.li/konso/1978.020"
|
|
130
|
+
binding: owner
|
|
131
|
+
binding_note: >-
|
|
132
|
+
VZV Art. 76 Abs. 1: "Die einmal zugeteilte Schildnummer bleibt für den Halter
|
|
133
|
+
reserviert." Art. 76 Abs. 5: the plates, other than provisional ones, "bleiben
|
|
134
|
+
Eigentum des Staates". The rule is original to the FL series itself — the
|
|
135
|
+
1924 decree's Art. 30 Abs. 2 reads "Diese Schilder werden der Person des
|
|
136
|
+
Wageneigentümers zugeteilt und sind nicht übertragbar." Every series in this
|
|
137
|
+
file inherits `owner`.
|
|
138
|
+
instrument:
|
|
139
|
+
citation: "Verkehrszulassungsverordnung (VZV) vom 1. August 1978, LR 741.51, LGBl. 1978 Nr. 20"
|
|
140
|
+
ausfertigungsdatum: "1978-08-01"
|
|
141
|
+
published: "1978-08-31"
|
|
142
|
+
entry_in_force: "1978-09-01"
|
|
143
|
+
enabling_act: "Strassenverkehrsgesetz (SVG) vom 30. Juni 1978, LGBl. 1978 Nr. 18, Art. 11-14, 23, 50 Abs. 3, 51, 53, 99"
|
|
144
|
+
predecessor: "Verordnung vom 5. April 1977 zum Gesetz über den Strassenverkehr, LGBl. 1977 Nr. 29 — expressly replaced by VZV Art. 125"
|
|
145
|
+
companion_instruments:
|
|
146
|
+
- "Verkehrsversicherungsverordnung (VVV) vom 1. August 1978, LR 741.31, LGBl. 1978 Nr. 21"
|
|
147
|
+
- "Gesetz vom 30. Juni 1982 über Wappen, Farben, Siegel und Embleme (Wappengesetz), LR 120, LGBl. 1982 Nr. 58"
|
|
148
|
+
amendments_material_to_plates:
|
|
149
|
+
- "LGBl. 2020 Nr. 349 — Verordnung vom 17. November 2020, ausgegeben 26. November 2020, in force 1. Januar 2021: rewrote Art. 71 Abs. 1 as the seven-colour enumeration and re-enacted Art. 72"
|
|
150
|
+
- "LGBl. 2021 Nr. 307 — Verordnung vom 5. Oktober 2021, ausgegeben 8. Oktober 2021: inserted Art. 71 Abs. 1 Bst. g and Art. 72 Abs. 3 Bst. d (the red rear-load-carrier plate), IN FORCE 1. MÄRZ 2022"
|
|
151
|
+
- "LGBl. 2001 Nr. 118 — repealed Art. 71 Abs. 2 Bst. b, the rental-car 'V' marking"
|
|
152
|
+
source: "https://www.gesetze.li/konso/1978.020 # VZV front matter and Art. 125; consolidated text version 66"
|
|
153
|
+
|
|
154
|
+
# ---------------------------------------------------------------------------
|
|
155
|
+
# Jurisdiction-wide facts, cited once and referenced per series.
|
|
156
|
+
# ---------------------------------------------------------------------------
|
|
157
|
+
common:
|
|
158
|
+
national_letters:
|
|
159
|
+
value: "FL"
|
|
160
|
+
rule: >-
|
|
161
|
+
VZV Art. 73 Abs. 1, verbatim and in its entirety: "Liechtensteinische
|
|
162
|
+
Motorfahrzeuge tragen als Unterscheidungszeichen die Buchstaben FL." The
|
|
163
|
+
letters are on the plate itself — unlike Switzerland, where the country
|
|
164
|
+
sign is a separate oval sticker — and there is no canton-style regional
|
|
165
|
+
letter, because there is no subdivision to encode. Every Liechtenstein
|
|
166
|
+
plate therefore begins FL and NOTHING in the string is geographic.
|
|
167
|
+
origin: >-
|
|
168
|
+
The FL letters are original to the 1924 decree: Art. 30 Abs. 1, "An jedem
|
|
169
|
+
Motorwagen müssen zwei Schilder angebracht sein, die die Buchstaben FL und
|
|
170
|
+
die Kontrollnummer tragen."
|
|
171
|
+
etymology_note: >-
|
|
172
|
+
The common story is that "L" was unavailable because Luxembourg held it,
|
|
173
|
+
leaving "FL" for Fürstentum Liechtenstein. The CAUSAL claim is secondary.
|
|
174
|
+
What IS primary is the pairing itself: Beilage A to the same 1924 decree
|
|
175
|
+
lists the international distinguishing signs and carries both
|
|
176
|
+
"Luxemburg: L" and "Liechtenstein: FL". So the two assignments are
|
|
177
|
+
instrument-sourced even though the reason for the choice is not.
|
|
178
|
+
sources:
|
|
179
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 73 Abs. 1"
|
|
180
|
+
- "https://www.gesetze.li/chrono/html/1924020000 # LGBl. 1924 Nr. 20, Art. 30 Abs. 1 and Beilage A"
|
|
181
|
+
pattern_dsl_limitation:
|
|
182
|
+
status: RECORDED SCHEMA FINDING — affects every series in this file
|
|
183
|
+
finding: >-
|
|
184
|
+
THE HUMAN-PATTERN DSL CANNOT SPELL A LITERAL "L", AND LIECHTENSTEIN IS THE
|
|
185
|
+
JURISDICTION WHERE THAT BITES HARDEST. PRD-PLATES §2.2 defines the pattern
|
|
186
|
+
alphabet as "9=digit L=letter, literal separators as printed", and
|
|
187
|
+
lint_plates.rb implements it by substituting EVERY "9" and EVERY "L" in a
|
|
188
|
+
pattern with a random digit or letter. There is no escape mechanism. So
|
|
189
|
+
the pattern "FL 99999" does not mean what it looks like — the lint reads
|
|
190
|
+
it as "F, any letter, space, five digits" and generates strings like
|
|
191
|
+
"FQ 96884", which the sourced regex correctly rejects.
|
|
192
|
+
consequence: >-
|
|
193
|
+
Every ordinary series here spells `pattern: "LL 99999"` and carries
|
|
194
|
+
`regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'` so the round-trip holds, with the
|
|
195
|
+
SOURCED grammar in `regex_strict: '\AFL[- ]?\d{1,5}\z'`. This follows the
|
|
196
|
+
precedent ch.yml sets for the Swiss canton codes, and `matching` stays
|
|
197
|
+
`strict` on the same reading: the widening is an artefact of the notation,
|
|
198
|
+
not a deliberate over-broad regex, and `regex_strict` is where the
|
|
199
|
+
authority's own grammar lives.
|
|
200
|
+
caution_for_consumers: >-
|
|
201
|
+
A consumer that reads only `format.pattern` or only `format.regex` for
|
|
202
|
+
Liechtenstein will conclude the first two characters vary. THEY DO NOT.
|
|
203
|
+
Read `regex_strict`, or read `common.national_letters`.
|
|
204
|
+
recommended_amendment: >-
|
|
205
|
+
A schema amendment would fix this properly — either an escape in the
|
|
206
|
+
pattern DSL (e.g. a quoted literal) or a `format.literal_prefix` field.
|
|
207
|
+
Recorded here rather than acted on, because inventing notation in a data
|
|
208
|
+
PR is exactly what PRD-PLATES §2.6 forbids for separators and the same
|
|
209
|
+
discipline applies to the pattern alphabet. The same limitation forced
|
|
210
|
+
sm.yml to model the San Marino POLIZIA legend as plate furniture rather
|
|
211
|
+
than as part of the serial.
|
|
212
|
+
numbering:
|
|
213
|
+
rule: >-
|
|
214
|
+
VZV Art. 73 Abs. 2, verbatim: "Die Nummerierung beginnt für Motorwagen,
|
|
215
|
+
Motoreinachser und Anhänger einerseits und Motorräder, Klein- und
|
|
216
|
+
dreirädrige Motorfahrzeuge anderseits separat sowie für jede Schilderart
|
|
217
|
+
nach Grundfarbe und besonderer Kennzeichnung getrennt und erfolgt in
|
|
218
|
+
aufsteigender Reihenfolge. Über Ausnahmen entscheidet die Regierung."
|
|
219
|
+
consequences:
|
|
220
|
+
- "Number spaces are split per BACKGROUND COLOUR and per SPECIAL MARKING, and additionally between the motorcar/single-axle/trailer family and the motorcycle/small/three-wheeler family. A number therefore repeats across colours: the same digits can exist simultaneously as a black car plate, a light-blue work-vehicle plate and a light-green agricultural plate."
|
|
221
|
+
- "TRAILERS SHARE THE MOTORCAR NUMBER SPACE, exactly as in Switzerland — Art. 73 Abs. 2 groups 'Motorwagen, Motoreinachser und Anhänger' as one series. A Liechtenstein trailer registration is not distinguishable from a car registration by its string alone."
|
|
222
|
+
- "A Liechtenstein plate encodes NO date and NO geography. There is no era inference to be had from the number, and the country has no subdivisions to encode."
|
|
223
|
+
- "'in aufsteigender Reihenfolge' is the whole of the progression rule. It does NOT state a starting number and does NOT forbid leading zeros; no no-leading-zero claim is made anywhere in this file."
|
|
224
|
+
digit_ceiling: null
|
|
225
|
+
digit_ceiling_note: >-
|
|
226
|
+
RECORDED GAP, and the reason every `regex` below is a practical rather
|
|
227
|
+
than a legal bound. NOTHING in the VZV caps the number of digits in a
|
|
228
|
+
Kontrollnummer. Five digits is the widest form the agency's own number
|
|
229
|
+
ranges reach, so `regex` uses \d{1,5}; `regex_statutory` drops the ceiling
|
|
230
|
+
to \d+ because that is the honest outer legal bound. The ONE sourced width
|
|
231
|
+
in the file is the moped plate's, where Art. 82 Abs. 6 says
|
|
232
|
+
"die 5-stelligen Kontrollschildnummern" in terms.
|
|
233
|
+
source: "https://www.gesetze.li/konso/1978.020 # VZV Art. 73 Abs. 2"
|
|
234
|
+
colours:
|
|
235
|
+
rule: >-
|
|
236
|
+
VZV Art. 71 Abs. 1 is a CLOSED seven-item enumeration and is the whole
|
|
237
|
+
Liechtenstein colour system: "Es werden abgegeben: a) Kontrollschilder mit
|
|
238
|
+
schwarzem Grund und weisser Schrift für Motorwagen, Motorräder, Klein- und
|
|
239
|
+
dreirädrige Motorfahrzeuge, Motoreinachser und Anhänger; b)
|
|
240
|
+
Kontrollschilder mit hellblauem Grund und schwarzer Schrift für
|
|
241
|
+
Arbeitsfahrzeuge; c) Kontrollschilder mit hellbraunem Grund und schwarzer
|
|
242
|
+
Schrift für Ausnahmefahrzeuge; d) Kontrollschilder mit hellgrünem Grund
|
|
243
|
+
und schwarzer Schrift für land- und forstwirtschaftliche Fahrzeuge; e)
|
|
244
|
+
Kontrollschilder mit gelbem Grund und schwarzer Schrift für
|
|
245
|
+
Kleinmotorräder und Leichtmotorfahrzeuge; f) Kontrollschilder mit
|
|
246
|
+
schwarzem Grund und gelber Schrift für Fahrzeuge mit einer Tageszulassung;
|
|
247
|
+
g) Kontrollschilder mit rotem Grund und weisser Schrift für hintere
|
|
248
|
+
Lastenträger an Motorwagen (Kontrollschild für hintere Lastenträger)."
|
|
249
|
+
dating: >-
|
|
250
|
+
CRITICAL AND EASY TO GET WRONG. This enumeration is NOT 1978 law. The
|
|
251
|
+
original Art. 71 Abs. 1 named plate types without colours, and Abs. 4
|
|
252
|
+
delegated the colours to the government: "Die Regierung legt die Grund-
|
|
253
|
+
und Schriftfarbe der Kontrollschilder fest." The colour list was inserted
|
|
254
|
+
by LGBl. 2020 Nr. 349, in force 1 January 2021 (consolidated-text footnote
|
|
255
|
+
411: "Art. 71 Abs. 1 abgeändert durch LGBl. 2020 Nr. 349"); item g was
|
|
256
|
+
inserted later still, by LGBl. 2021 Nr. 307, in force 1 March 2022. A
|
|
257
|
+
colour claim in this file is therefore instrument-grade from 2021 and
|
|
258
|
+
agency-grade before it, and each series says which. The PLATES are older
|
|
259
|
+
than the colour law; the colour law is not a series start.
|
|
260
|
+
hex_basis_note: >-
|
|
261
|
+
The ordinance NAMES colours in German and gives no RAL, Pantone or RGB
|
|
262
|
+
value anywhere — the same situation ch.yml and de.yml record. Every hex
|
|
263
|
+
below is `hex_basis: observed`, chosen as a conventional rendering of the
|
|
264
|
+
German colour word, and MUST NOT be treated as a spec value. There is no
|
|
265
|
+
chromaticity table of the Spanish Anexo XVIII kind to anchor to.
|
|
266
|
+
sources:
|
|
267
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 1 lit. a-g, with footnotes 411 and 412 dating lit. a-f to LGBl. 2020 Nr. 349 and lit. g to LGBl. 2021 Nr. 307"
|
|
268
|
+
- "https://www.gesetze.li/chrono/html/1978020000 # the ORIGINAL 1978 text, showing Art. 71 Abs. 1 without colours and Abs. 4 delegating them"
|
|
269
|
+
special_markings:
|
|
270
|
+
rule: >-
|
|
271
|
+
VZV Art. 71 Abs. 2 is the closed list of specially-marked plates: "Besonders
|
|
272
|
+
gekennzeichnet werden: a) die Schilder für die provisorische Zulassung nach
|
|
273
|
+
Art. 19 VVV; b) Aufgehoben; c) die Händlerschilder mit dem Buchstaben 'U';
|
|
274
|
+
d) Aufgehoben".
|
|
275
|
+
repealed_items:
|
|
276
|
+
- "Bst. b was the RENTAL-CAR marking, the letter 'V' — present in the 1978 original as 'die Schilder für Mietwagen mit dem Buchstaben \"V\"' and repealed by LGBl. 2001 Nr. 118. Modelled as li-rental-v, ENDED 2001."
|
|
277
|
+
- "Bst. d was repealed by LGBl. 2020 Nr. 349. Its former content was not read in this pass and is a recorded gap; no series is asserted for it."
|
|
278
|
+
consequence: >-
|
|
279
|
+
Anything NOT on this list carries an unmarked plate. That is a sourced
|
|
280
|
+
NEGATIVE and it kills series a naive reading would invent: there is no
|
|
281
|
+
taxi marking, no historic marking and no electric marking in Liechtenstein
|
|
282
|
+
law, and government and police vehicles carry ordinary black plates
|
|
283
|
+
distinguished only by low agency-allocated numbers, not by any provision
|
|
284
|
+
of the ordinance.
|
|
285
|
+
source: "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 2 lit. a-d"
|
|
286
|
+
dimensions:
|
|
287
|
+
rule: >-
|
|
288
|
+
VZV Art. 72 Abs. 3, verbatim: "Die Kontrollschilder weisen folgende
|
|
289
|
+
Formate auf, wobei die Ecken mit einem Radius von 1 cm abgerundet sind:
|
|
290
|
+
a) Das vordere Schild für Motorwagen sowie das Schild für Motoreinachser,
|
|
291
|
+
landwirtschaftliche Fahrzeuge und Arbeitsanhänger haben eine Länge von
|
|
292
|
+
30 cm und eine Höhe von 8 cm. b) Das hintere Schild für Motorwagen sowie
|
|
293
|
+
das Schild für Transportanhänger an Motorwagen haben entweder eine Länge
|
|
294
|
+
von 30 cm und eine Höhe von 16 cm (Hochformat) oder eine Länge von 50 cm
|
|
295
|
+
und eine Höhe von 11 cm (Langformat). c) Das Schild für Motorräder, Klein-
|
|
296
|
+
und dreirädrige Motorfahrzeuge, Kleinmotorräder und Leichtmotorfahrzeuge
|
|
297
|
+
sowie für ihre Anhänger hat eine Länge von 18 cm und eine Höhe von 14 cm;
|
|
298
|
+
d) Das Kontrollschild für hintere Lastenträger an Motorwagen hat eine
|
|
299
|
+
Länge von 50 cm und eine Höhe von 11 cm (Langformat)."
|
|
300
|
+
front_motorcar: { w: 300, h: 80, unit: mm, corner_radius_mm: 10 }
|
|
301
|
+
rear_motorcar_hochformat: { w: 300, h: 160, unit: mm, corner_radius_mm: 10 }
|
|
302
|
+
rear_motorcar_langformat: { w: 500, h: 110, unit: mm, corner_radius_mm: 10 }
|
|
303
|
+
motorcycle: { w: 180, h: 140, unit: mm, corner_radius_mm: 10 }
|
|
304
|
+
rear_load_carrier: { w: 500, h: 110, unit: mm, corner_radius_mm: 10 }
|
|
305
|
+
moped: { w: 100, h: 140, unit: mm, note: "NOT in Art. 72 — Art. 82 Abs. 6 states it separately: 'Kontrollschilder für Motorfahrräder sind 14 cm hoch und 10 cm breit.'" }
|
|
306
|
+
divergence_from_ch_note: >-
|
|
307
|
+
Art. 72 Abs. 3 Bst. c differs materially from the Swiss Art. 83 Abs. 3:
|
|
308
|
+
Liechtenstein puts Kleinmotorräder and Leichtmotorfahrzeuge on the SAME
|
|
309
|
+
180 x 140 mm plate as motorcycles, where Switzerland gives them a separate
|
|
310
|
+
100 x 140 mm format. The 100 x 140 mm size exists in Liechtenstein only
|
|
311
|
+
for MOTORFAHRRÄDER (mopeds), under Art. 82 Abs. 6. This is a real
|
|
312
|
+
divergence between two near-identical ordinances and it is the kind of
|
|
313
|
+
detail a copy-from-Switzerland approach would get wrong.
|
|
314
|
+
dating_note: "Art. 72 was wholly re-enacted by LGBl. 2020 Nr. 349 (footnote 417); Bst. d was added by LGBl. 2021 Nr. 307 with effect 1 March 2022."
|
|
315
|
+
source: "https://www.gesetze.li/konso/1978.020 # VZV Art. 72 Abs. 3 lit. a-d and Art. 82 Abs. 6"
|
|
316
|
+
layout:
|
|
317
|
+
rule: >-
|
|
318
|
+
VZV Art. 74, verbatim: "1) Auf dem vorderen Kontrollschild sind von links
|
|
319
|
+
nach rechts das Landeszeichen FL, das kleine Staatswappen und die Zahlen
|
|
320
|
+
aufgetragen. 2) Auf dem hinteren Kontrollschild sind aufgetragen: a) oben
|
|
321
|
+
links das Landeszeichen FL, oben rechts das kleine Staatswappen und
|
|
322
|
+
darunter die Zahlen; oder b) von links nach rechts das Landeszeichen FL,
|
|
323
|
+
das kleine Staatswappen und die Zahlen. 3) Auf Kollektivschildern
|
|
324
|
+
(Händlerschilder) ist am rechten Schilderrand zudem der Buchstabe 'U'
|
|
325
|
+
aufgetragen."
|
|
326
|
+
arms_is_the_separator: >-
|
|
327
|
+
NOTE FOR THE RENDER LAYER AND FOR ANY CONSUMER READING `pattern`. The
|
|
328
|
+
thing that sits between "FL" and the digits is not punctuation — it is the
|
|
329
|
+
SMALL STATE ARMS. Liechtenstein has no printed separator glyph at all.
|
|
330
|
+
This is the case _meta/separators.yml's `never_separator_note` anticipates
|
|
331
|
+
for German and Austrian plates: an emblem between groups is a design
|
|
332
|
+
element carried in `design.emblem`, never in the serial, and no consumer
|
|
333
|
+
may treat it as a strippable character. Every `pattern` below spells a
|
|
334
|
+
SPACE at that position and every `regex` accepts `[- ]?`, so a
|
|
335
|
+
§2.6-conformant consumer canonicalising "FL 1234" reaches "FL1234"
|
|
336
|
+
correctly.
|
|
337
|
+
source: "https://www.gesetze.li/konso/1978.020 # VZV Art. 74 Abs. 1-3"
|
|
338
|
+
material:
|
|
339
|
+
rule: >-
|
|
340
|
+
VZV Art. 72 Abs. 1: "Die Kontrollschilder bestehen aus korrosionsbeständigem
|
|
341
|
+
Metall; sie können mit einem reflektierenden oder nachleuchtenden Belag
|
|
342
|
+
versehen sein." Art. 72 Abs. 2: "Das kleine Staatswappen sowie die
|
|
343
|
+
Buchstaben und Zahlen sind auf 1.5 mm erhaben gepresst."
|
|
344
|
+
finish_note: >-
|
|
345
|
+
Retroreflection is PERMISSIVE ("können"), not mandatory, on the ordinary
|
|
346
|
+
plates — hence `finish: retroreflective-optional` throughout. The single
|
|
347
|
+
exception is the moped plate, where Art. 82 Abs. 6 requires a yellow
|
|
348
|
+
reflective coating in terms ("weisen einen gelb reflektierenden Belag auf").
|
|
349
|
+
embossing: "raised 1.5 mm — arms, letters and numbers alike; Liechtenstein plates are pressed metal, not printed"
|
|
350
|
+
source: "https://www.gesetze.li/konso/1978.020 # VZV Art. 72 Abs. 1-2, Art. 82 Abs. 6"
|
|
351
|
+
arms:
|
|
352
|
+
which: "das kleine Staatswappen"
|
|
353
|
+
definition: >-
|
|
354
|
+
Wappengesetz Art. 3 Abs. 2: "Das kleine Staatswappen ist das von Gold und
|
|
355
|
+
Rot geteilte Herzschild des grossen Staatswappens unter dem Fürstenhut."
|
|
356
|
+
Gold and red, party per bend, beneath the princely hat.
|
|
357
|
+
plate_use_is_statutory: >-
|
|
358
|
+
The plate is named in the arms statute itself. Wappengesetz Art. 12 Abs. 2
|
|
359
|
+
lists where the small state arms are used and includes, in terms, "auf
|
|
360
|
+
Kontrollschildern für Motorfahrzeuge". So the arms-on-plate fact has TWO
|
|
361
|
+
independent instruments behind it — the VZV's layout article and the
|
|
362
|
+
Wappengesetz's use article.
|
|
363
|
+
rendered: placeholder
|
|
364
|
+
licence_posture: >-
|
|
365
|
+
PRD-PLATES §3's placeholder rule applies. The Wappengesetz reserves the
|
|
366
|
+
state arms to the State and no affirmatively-clean licence route to the
|
|
367
|
+
artwork was located, so the emblem slot renders as a neutral placeholder
|
|
368
|
+
exactly as in ch.yml. Recorded honestly and NOT as legal advice: the
|
|
369
|
+
Wappengesetz was read only for Art. 3 and Art. 12 in this pass, and its
|
|
370
|
+
permitted-use provisions were not surveyed.
|
|
371
|
+
history_gap: >-
|
|
372
|
+
RECORDED GAP. The arms are widely reported to have appeared on the plate
|
|
373
|
+
from 1 January 1925 and to have changed from blue-and-red to gold-and-red
|
|
374
|
+
around 1961. NEITHER IS SUPPORTED BY AN INSTRUMENT read here: the 4
|
|
375
|
+
December 1924 decree contains no arms provision at all (all 297 lines were
|
|
376
|
+
read), and the reported 1961 Landtag decision was a spending approval that
|
|
377
|
+
would appear in the parliamentary record rather than in the LGBl. The
|
|
378
|
+
traceable legal thread is the arms statute line — Gesetz vom 4. Juni 1957,
|
|
379
|
+
LGBl. 1957 Nr. 13, repealed and replaced by the 1982 Wappengesetz — and
|
|
380
|
+
LGBl. 1957 Nr. 13 was NOT fetched in this pass.
|
|
381
|
+
sources:
|
|
382
|
+
- "https://www.gesetze.li/konso/html/1982058000 # Wappengesetz Art. 3 Abs. 2 and Art. 12 Abs. 2"
|
|
383
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 74"
|
|
384
|
+
font:
|
|
385
|
+
name: null
|
|
386
|
+
statutory_basis: >-
|
|
387
|
+
NO TYPEFACE IS NAMED AND NO SCHRIFTMUSTER IS ANNEXED. The VZV prescribes
|
|
388
|
+
the embossing height (Art. 72 Abs. 2) and the layout (Art. 74) and says
|
|
389
|
+
nothing about letterforms. This is the same finding the EU dossier records
|
|
390
|
+
for the UK, Germany and Spain, reached here by absence rather than by
|
|
391
|
+
delegation — Liechtenstein does not even delegate the question the way the
|
|
392
|
+
Swiss ordinance does to the ASTRA.
|
|
393
|
+
licence: >-
|
|
394
|
+
No licensable font is mandated, so per PRD-PLATES §6 the render layer uses
|
|
395
|
+
the schematic fallback and records the substitution. No third-party plate
|
|
396
|
+
font is touched.
|
|
397
|
+
source: "https://www.gesetze.li/konso/1978.020 # VZV Art. 72 Abs. 2, Art. 74 — the whole of what the ordinance says about characters"
|
|
398
|
+
number_ranges:
|
|
399
|
+
status: agency-level
|
|
400
|
+
rule: >-
|
|
401
|
+
NOT LAW. See structural fact 5. The allocation blocks in circulation are
|
|
402
|
+
administered under the Amt für Strassenverkehr's "Weisungen über die
|
|
403
|
+
Kontrollschilder" of 1 January 2015, issued under the VZV's delegation
|
|
404
|
+
provisions. That document was NOT fetched in this pass, so no range is
|
|
405
|
+
stated as fact anywhere in this file; where a series would be identified
|
|
406
|
+
by its block alone, the block is described as agency-allocated and the
|
|
407
|
+
regex does not encode it.
|
|
408
|
+
source: "https://www.llv.li/serviceportal2/amtsstellen/amt-fuer-strassenverkehr/asv/weisungen-kontrollschilder-01012015.pdf # AGENCY INSTRUMENT, located but NOT fetched — recorded as the place the ranges live"
|
|
409
|
+
not_modelled:
|
|
410
|
+
- "DIPLOMATIC PLATES ARE NOT MODELLED. A provision exists — Verordnung vom 21. April 1981 über Ausweise und Bewilligungen sowie Kontrollschilder und Kennzeichen im Strassenverkehr, LGBl. 1981 Nr. 64, Art. 18 — but it was NOT FETCHED in this pass, and secondary accounts suggest the regime was never implemented in practice. Modelling it from an unread article would be manufacturing. Recorded as a located-but-unread instrument and the single best target for the next pass."
|
|
411
|
+
- "HISTORIC / VETERAN PLATES DO NOT EXIST as a plate class. Art. 71's colour list and Art. 71 Abs. 2's marking list are both closed and neither has a historic entry."
|
|
412
|
+
- "TAXI PLATES DO NOT EXIST. Nothing in Art. 71 marks a for-hire vehicle."
|
|
413
|
+
- "EXPORT PLATES DO NOT EXIST. Art. 71 is exhaustive and has no export series; the nearest regime is the provisional immatriculation of VVV Art. 19, modelled as li-provisional."
|
|
414
|
+
- "GOVERNMENT AND POLICE PLATES ARE NOT SEPARATE SERIES. They are ordinary black Art. 71 Abs. 1 Bst. a plates carrying low agency-allocated numbers. The low blocks are administrative, not statutory — see common.number_ranges — so no series is created for them."
|
|
415
|
+
- "MATTE-BLACK AND COLLECTOR/SOUVENIR PLATES are options and merchandise administered by the ASV, not distinct series in the ordinance."
|
|
416
|
+
|
|
417
|
+
region_encoding: none
|
|
418
|
+
region_encoding_note: >-
|
|
419
|
+
Liechtenstein encodes NO geography in the plate and has no subdivision codes.
|
|
420
|
+
The country has eleven Gemeinden and none of them appears in a registration.
|
|
421
|
+
This is stated once here and repeated per series as `region_encoding: none`.
|
|
422
|
+
|
|
423
|
+
series:
|
|
424
|
+
|
|
425
|
+
# =========================================================================
|
|
426
|
+
# THE STANDARD SERIES — black ground, white script, FL + number.
|
|
427
|
+
# The oldest continuously-running plate system in Europe, and the one
|
|
428
|
+
# instrument-dated fact that most secondary accounts get wrong by a year.
|
|
429
|
+
# =========================================================================
|
|
430
|
+
- id: li-standard
|
|
431
|
+
class: standard
|
|
432
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
433
|
+
period: { start: 1925 }
|
|
434
|
+
period_evidence: instrument-in-force
|
|
435
|
+
period_note: >-
|
|
436
|
+
1925, NOT 1924 — the instrument-date rule in its clearest form. The
|
|
437
|
+
Vollziehungs-Verordnung is dated 4 December 1924 and was published on
|
|
438
|
+
6 December 1924, and its Art. 30 Abs. 1 is what mandates the FL plate.
|
|
439
|
+
But the decree's own commencement clause reads "Diese Verordnung tritt am
|
|
440
|
+
1. Januar 1925 in Kraft." No FL plate could lawfully be issued under it
|
|
441
|
+
before 1 January 1925. Secondary accounts uniformly say "1924", dating the
|
|
442
|
+
system by the signature of the decree rather than by its commencement;
|
|
443
|
+
that is precisely the error this dataset's period discipline exists to
|
|
444
|
+
prevent, and it is corrected here from the instrument's own text.
|
|
445
|
+
matching: strict
|
|
446
|
+
format:
|
|
447
|
+
pattern: "LL 99999"
|
|
448
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'
|
|
449
|
+
regex_strict: '\AFL[- ]?\d{1,5}\z'
|
|
450
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
451
|
+
format_evidence: statutory
|
|
452
|
+
charset:
|
|
453
|
+
letters: "the literal pair FL and nothing else — VZV Art. 73 Abs. 1 fixes them for all Liechtenstein motor vehicles"
|
|
454
|
+
notes: >-
|
|
455
|
+
THERE IS NO VARIABLE LETTER ANYWHERE IN THE ORDINARY LIECHTENSTEIN
|
|
456
|
+
SERIAL — FL is a constant, not an alphabet. That makes the `[A-Z]{2}`
|
|
457
|
+
in `regex` a pure artefact of the human-pattern DSL (see
|
|
458
|
+
common.pattern_dsl_limitation), and `regex_strict` carries the real
|
|
459
|
+
and only grammar. A consumer wanting the truth should read
|
|
460
|
+
`regex_strict` here, not `regex`. This is a stronger case than
|
|
461
|
+
Switzerland's, where `[A-Z]{2}` at least stands for a real 26-member
|
|
462
|
+
set; in Liechtenstein it stands for exactly one value.
|
|
463
|
+
progression: >-
|
|
464
|
+
VZV Art. 73 Abs. 2 — ascending order, with number spaces split per
|
|
465
|
+
colour, per special marking and between the motorcar and motorcycle
|
|
466
|
+
families. No date and no geography is encoded.
|
|
467
|
+
separator_note: >-
|
|
468
|
+
The gap between FL and the digits is occupied by the SMALL STATE ARMS,
|
|
469
|
+
not by punctuation (Art. 74 Abs. 1). See common.layout.arms_is_the_separator.
|
|
470
|
+
On the Hochformat rear plate the digits sit on a second line instead.
|
|
471
|
+
design:
|
|
472
|
+
plate: { w: 300, h: 80, unit: mm, note: "FRONT plate, corners rounded r=10 mm (Art. 72 Abs. 3 Bst. a)" }
|
|
473
|
+
plate_variants:
|
|
474
|
+
- { w: 300, h: 160, unit: mm, note: "REAR Hochformat, two-line (Art. 72 Abs. 3 Bst. b)" }
|
|
475
|
+
- { w: 500, h: 110, unit: mm, note: "REAR Langformat, single-line (Art. 72 Abs. 3 Bst. b)" }
|
|
476
|
+
background: { color: "#000000", finish: retroreflective-optional, hex_basis: observed, spec_note: "VZV Art. 71 Abs. 1 Bst. a names 'schwarzem Grund und weisser Schrift' with no RAL/RGB value" }
|
|
477
|
+
foreground: "#FFFFFF"
|
|
478
|
+
colour_dating_note: >-
|
|
479
|
+
The BLACK/WHITE combination is instrument-sourced only from 1 January
|
|
480
|
+
2021 (LGBl. 2020 Nr. 349). Before that the VZV delegated colour to the
|
|
481
|
+
government, so black-on-white for the period 1978-2020 is agency-level,
|
|
482
|
+
and for 1925-1978 it is not sourced here at all. The SERIES period is
|
|
483
|
+
unaffected — see common.colours.dating.
|
|
484
|
+
band: { side: none }
|
|
485
|
+
band_note: "no Euro band and no national strip — Liechtenstein is not in the EU. The FL letters are ON the plate under Art. 73 Abs. 1, so no separate country oval is needed domestically."
|
|
486
|
+
emblem:
|
|
487
|
+
present: true
|
|
488
|
+
rendered: placeholder
|
|
489
|
+
position: "between the FL and the digits on the front and Langformat plates; upper right on the Hochformat rear plate (Art. 74 Abs. 1-2)"
|
|
490
|
+
note: "das kleine Staatswappen — see common.arms"
|
|
491
|
+
layout_front: "left to right: FL, small state arms, digits (Art. 74 Abs. 1)"
|
|
492
|
+
layout_rear: "either FL upper left, arms upper right, digits below; or left to right FL, arms, digits (Art. 74 Abs. 2 Bst. a and b) — the ordinance permits BOTH"
|
|
493
|
+
rear_differs: true
|
|
494
|
+
rear_differs_note: >-
|
|
495
|
+
TRUE, and in two ways at once: the rear plate has different DIMENSIONS
|
|
496
|
+
from the front (300x160 or 500x110 against 300x80) and a different
|
|
497
|
+
permitted LAYOUT (Art. 74 Abs. 2 allows a two-line arrangement the front
|
|
498
|
+
plate does not have). Unlike Switzerland the emblem content is the same
|
|
499
|
+
on both — Liechtenstein has no cantonal arms to add.
|
|
500
|
+
display: "two plates, front and rear, since 1924: 'An jedem Motorwagen müssen zwei Schilder angebracht sein' (LGBl. 1924 Nr. 20, Art. 30 Abs. 1)"
|
|
501
|
+
region_encoding: none
|
|
502
|
+
notes: >-
|
|
503
|
+
THE MAIN SERIES: black ground, white script, FL plus an ascending number,
|
|
504
|
+
binding to the Halter. Modelled as ONE continuous series from 1925 because
|
|
505
|
+
the defining grammar — FL plus a number, allocated to the owner — has not
|
|
506
|
+
changed since the 1924 decree; what changed across the century is
|
|
507
|
+
dimensions, materials, the arms and the colour's legal basis, all of which
|
|
508
|
+
are design facts carried above rather than new series. A verifier who
|
|
509
|
+
wants generation splits should note that no instrument read here draws
|
|
510
|
+
one.
|
|
511
|
+
sources:
|
|
512
|
+
- "https://www.gesetze.li/chrono/html/1924020000 # LGBl. 1924 Nr. 20, Vollziehungs-Verordnung vom 4. Dezember 1924, Art. 30 Abs. 1 (FL + Kontrollnummer, two plates) and the commencement clause 'Diese Verordnung tritt am 1. Januar 1925 in Kraft'"
|
|
513
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 1 Bst. a (colours), Art. 72 Abs. 3 Bst. a-b (dimensions), Art. 73 (FL + numbering), Art. 74 Abs. 1-2 (layout), Art. 76 Abs. 1 (owner binding)"
|
|
514
|
+
- "https://www.gesetze.li/konso/html/1982058000 # Wappengesetz Art. 12 Abs. 2 — the small state arms are used 'auf Kontrollschildern für Motorfahrzeuge'"
|
|
515
|
+
|
|
516
|
+
# =========================================================================
|
|
517
|
+
# THE COLOUR-DEFINED SPECIAL-USE SERIES (Art. 71 Abs. 1 Bst. b-f).
|
|
518
|
+
# =========================================================================
|
|
519
|
+
- id: li-workvehicle-blue
|
|
520
|
+
class: standard
|
|
521
|
+
categories: [machine, truck]
|
|
522
|
+
period: { start: 1978 }
|
|
523
|
+
period_evidence: instrument-in-force-upper-bound
|
|
524
|
+
period_note: >-
|
|
525
|
+
1978 is an UPPER BOUND on the start, not the start. The VZV of 1 August
|
|
526
|
+
1978 is the earliest instrument READ that carries a plate-type system;
|
|
527
|
+
its own predecessor, the Verordnung vom 5. April 1977 (LGBl. 1977 Nr. 29),
|
|
528
|
+
also enumerated plate types and was not fully read, so work-vehicle plates
|
|
529
|
+
may well be older. The COLOUR is a separate and later fact — light blue
|
|
530
|
+
enters the ordinance only on 1 January 2021.
|
|
531
|
+
matching: strict
|
|
532
|
+
format:
|
|
533
|
+
pattern: "LL 99999"
|
|
534
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'
|
|
535
|
+
regex_strict: '\AFL[- ]?\d{1,5}\z'
|
|
536
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
537
|
+
format_evidence: statutory
|
|
538
|
+
progression: "own number space, separate from every other colour (Art. 73 Abs. 2)"
|
|
539
|
+
design:
|
|
540
|
+
plate: { w: 300, h: 80, unit: mm }
|
|
541
|
+
background: { color: "#ADD8E6", finish: retroreflective-optional, hex_basis: observed, spec_note: "VZV Art. 71 Abs. 1 Bst. b names 'hellblauem Grund und schwarzer Schrift'; no RAL/RGB value exists" }
|
|
542
|
+
foreground: "#000000"
|
|
543
|
+
band: { side: none }
|
|
544
|
+
emblem: { present: true, rendered: placeholder }
|
|
545
|
+
rear_differs: true
|
|
546
|
+
region_encoding: none
|
|
547
|
+
notes: >-
|
|
548
|
+
ARBEITSFAHRZEUGE — work vehicles. Light blue ground, black script. The
|
|
549
|
+
string is indistinguishable from an ordinary plate, so the COLOUR is the
|
|
550
|
+
only thing that identifies the series: a parse API cannot tell a blue
|
|
551
|
+
work-vehicle registration from a black car registration from the text
|
|
552
|
+
alone, and must not claim to.
|
|
553
|
+
sources:
|
|
554
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 1 Bst. b, Art. 73 Abs. 2"
|
|
555
|
+
|
|
556
|
+
- id: li-exceptional-brown
|
|
557
|
+
class: standard
|
|
558
|
+
categories: [truck, machine, trailer]
|
|
559
|
+
period: { start: 1978 }
|
|
560
|
+
period_evidence: instrument-in-force-upper-bound
|
|
561
|
+
matching: strict
|
|
562
|
+
format:
|
|
563
|
+
pattern: "LL 99999"
|
|
564
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'
|
|
565
|
+
regex_strict: '\AFL[- ]?\d{1,5}\z'
|
|
566
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
567
|
+
format_evidence: statutory
|
|
568
|
+
design:
|
|
569
|
+
plate: { w: 300, h: 80, unit: mm }
|
|
570
|
+
background: { color: "#D2B48C", finish: retroreflective-optional, hex_basis: observed, spec_note: "'hellbraunem Grund und schwarzer Schrift', Art. 71 Abs. 1 Bst. c; no RAL/RGB value" }
|
|
571
|
+
foreground: "#000000"
|
|
572
|
+
band: { side: none }
|
|
573
|
+
emblem: { present: true, rendered: placeholder }
|
|
574
|
+
rear_differs: true
|
|
575
|
+
region_encoding: none
|
|
576
|
+
notes: >-
|
|
577
|
+
AUSNAHMEFAHRZEUGE — exceptional vehicles, i.e. those exceeding the
|
|
578
|
+
ordinary weight or dimension limits. Light brown ground, black script.
|
|
579
|
+
Same textual indistinguishability as the blue series: colour alone
|
|
580
|
+
separates it.
|
|
581
|
+
sources:
|
|
582
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 1 Bst. c"
|
|
583
|
+
|
|
584
|
+
- id: li-agricultural-green
|
|
585
|
+
class: agricultural
|
|
586
|
+
categories: [tractor, machine, trailer]
|
|
587
|
+
period: { start: 1978 }
|
|
588
|
+
period_evidence: instrument-in-force-upper-bound
|
|
589
|
+
matching: strict
|
|
590
|
+
format:
|
|
591
|
+
pattern: "LL 99999"
|
|
592
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'
|
|
593
|
+
regex_strict: '\AFL[- ]?\d{1,5}\z'
|
|
594
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
595
|
+
format_evidence: statutory
|
|
596
|
+
design:
|
|
597
|
+
plate: { w: 300, h: 80, unit: mm, note: "Art. 72 Abs. 3 Bst. a puts landwirtschaftliche Fahrzeuge on the 300x80 format, and they carry a SINGLE plate" }
|
|
598
|
+
background: { color: "#90EE90", finish: retroreflective-optional, hex_basis: observed, spec_note: "'hellgrünem Grund und schwarzer Schrift', Art. 71 Abs. 1 Bst. d; no RAL/RGB value" }
|
|
599
|
+
foreground: "#000000"
|
|
600
|
+
band: { side: none }
|
|
601
|
+
emblem: { present: true, rendered: placeholder }
|
|
602
|
+
rear_differs: false
|
|
603
|
+
region_encoding: none
|
|
604
|
+
notes: >-
|
|
605
|
+
LAND- UND FORSTWIRTSCHAFTLICHE FAHRZEUGE — agricultural and forestry
|
|
606
|
+
vehicles. Light green ground, black script, and one plate rather than two:
|
|
607
|
+
Art. 72 Abs. 3 Bst. a groups them with the single-plate formats. Note the
|
|
608
|
+
ordinance's category is wider than the colour article's heading suggests —
|
|
609
|
+
Art. 72 says "landwirtschaftliche Fahrzeuge" where Art. 71 says "land- und
|
|
610
|
+
forstwirtschaftliche Fahrzeuge".
|
|
611
|
+
sources:
|
|
612
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 1 Bst. d, Art. 72 Abs. 3 Bst. a"
|
|
613
|
+
|
|
614
|
+
- id: li-lightmotor-yellow
|
|
615
|
+
class: motorcycle
|
|
616
|
+
categories: [motorcycle, quadricycle]
|
|
617
|
+
period: { start: 1978 }
|
|
618
|
+
period_evidence: instrument-in-force-upper-bound
|
|
619
|
+
matching: strict
|
|
620
|
+
format:
|
|
621
|
+
pattern: "LL 9999"
|
|
622
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'
|
|
623
|
+
regex_strict: '\AFL[- ]?\d{1,5}\z'
|
|
624
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
625
|
+
format_evidence: statutory
|
|
626
|
+
progression: >-
|
|
627
|
+
Own number space. Art. 73 Abs. 2 puts Motorräder, Klein- und
|
|
628
|
+
dreirädrige Motorfahrzeuge in a DIFFERENT numbering family from
|
|
629
|
+
motorcars, so a low number here is unrelated to a low number on a car
|
|
630
|
+
plate.
|
|
631
|
+
design:
|
|
632
|
+
plate: { w: 180, h: 140, unit: mm, note: "Art. 72 Abs. 3 Bst. c — the SAME plate size as full motorcycles, which is where Liechtenstein diverges from Switzerland; see common.dimensions.divergence_from_ch_note" }
|
|
633
|
+
background: { color: "#FFD700", finish: retroreflective-optional, hex_basis: observed, spec_note: "'gelbem Grund und schwarzer Schrift', Art. 71 Abs. 1 Bst. e; no RAL/RGB value" }
|
|
634
|
+
foreground: "#000000"
|
|
635
|
+
band: { side: none }
|
|
636
|
+
emblem: { present: true, rendered: placeholder }
|
|
637
|
+
rear_differs: false
|
|
638
|
+
region_encoding: none
|
|
639
|
+
notes: >-
|
|
640
|
+
KLEINMOTORRÄDER UND LEICHTMOTORFAHRZEUGE — small motorcycles and light
|
|
641
|
+
motor vehicles. Yellow ground, black script, rear plate only. Distinct
|
|
642
|
+
from li-moped, which is the MOTORFAHRRAD (moped) plate under Art. 82 and
|
|
643
|
+
is a different size, a different legal regime and a mandatory-reflective
|
|
644
|
+
finish.
|
|
645
|
+
sources:
|
|
646
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 1 Bst. e, Art. 72 Abs. 3 Bst. c, Art. 73 Abs. 2"
|
|
647
|
+
|
|
648
|
+
- id: li-day-registration
|
|
649
|
+
class: temporary
|
|
650
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
651
|
+
period: { start: 2021 }
|
|
652
|
+
period_evidence: instrument-in-force
|
|
653
|
+
period_caveat: >-
|
|
654
|
+
READ THIS BEFORE TRUSTING THE START YEAR. 1 January 2021 is the date the
|
|
655
|
+
COLOUR entry for day-registration plates (Art. 71 Abs. 1 Bst. f) entered
|
|
656
|
+
the ordinance via LGBl. 2020 Nr. 349. It is almost certainly NOT the date
|
|
657
|
+
the day-registration regime began — Tageszulassung is an old device and
|
|
658
|
+
the underlying provision was not pinned in this pass. The start is
|
|
659
|
+
recorded as 2021 because that is the only date an instrument supports,
|
|
660
|
+
and this caveat exists so no consumer reads it as the regime's origin. A
|
|
661
|
+
verifier should push this start back or re-cut the series.
|
|
662
|
+
matching: strict
|
|
663
|
+
format:
|
|
664
|
+
pattern: "LL 99999"
|
|
665
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'
|
|
666
|
+
regex_strict: '\AFL[- ]?\d{1,5}\z'
|
|
667
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
668
|
+
format_evidence: statutory
|
|
669
|
+
design:
|
|
670
|
+
plate: { w: 300, h: 80, unit: mm }
|
|
671
|
+
background: { color: "#000000", finish: retroreflective-optional, hex_basis: observed, spec_note: "'schwarzem Grund und gelber Schrift', Art. 71 Abs. 1 Bst. f" }
|
|
672
|
+
foreground: "#FFD700"
|
|
673
|
+
foreground_note: >-
|
|
674
|
+
YELLOW SCRIPT ON BLACK — the inverse-contrast twin of the standard
|
|
675
|
+
series, and the only series in the file that shares the standard's black
|
|
676
|
+
ground. Colour is the entire distinction, in both directions: the string
|
|
677
|
+
is identical in shape and the ground is identical in colour.
|
|
678
|
+
band: { side: none }
|
|
679
|
+
emblem: { present: true, rendered: placeholder }
|
|
680
|
+
rear_differs: true
|
|
681
|
+
region_encoding: none
|
|
682
|
+
notes: >-
|
|
683
|
+
TAGESZULASSUNG — day registration, for short journeys on an unregistered
|
|
684
|
+
vehicle. Black ground with YELLOW script, which is what separates it from
|
|
685
|
+
the standard black-and-white plate. Its number block is agency-allocated
|
|
686
|
+
and is not stated here (common.number_ranges).
|
|
687
|
+
sources:
|
|
688
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 1 Bst. f, inserted by LGBl. 2020 Nr. 349 with effect 1 January 2021"
|
|
689
|
+
|
|
690
|
+
- id: li-rear-load-carrier
|
|
691
|
+
class: trailer
|
|
692
|
+
categories: [load-carrier]
|
|
693
|
+
period: { start: 2022 }
|
|
694
|
+
period_evidence: instrument-in-force
|
|
695
|
+
period_note: >-
|
|
696
|
+
THE SECOND TEXTBOOK INSTRUMENT-DATE CASE IN THIS FILE, and the cleanest
|
|
697
|
+
in the dataset. The amending ordinance is dated 5 October 2021 and was
|
|
698
|
+
published 8 October 2021. Its commencement article splits: "1) Diese
|
|
699
|
+
Verordnung tritt vorbehaltlich Abs. 2 am 1. November 2021 in Kraft.
|
|
700
|
+
2) Art. 69 Abs. 6, Art. 71 Abs. 1 Bst. g und Abs. 4 sowie Art. 72 Abs. 3
|
|
701
|
+
Bst. d treten am 1. März 2022 in Kraft." The PLATE provisions are in
|
|
702
|
+
subsection 2. So the series starts 1 March 2022 — not on the signature
|
|
703
|
+
date, not on the publication date, and not on the instrument's general
|
|
704
|
+
commencement date, all three of which fall in 2021. Three plausible wrong
|
|
705
|
+
answers, one right one, and only the instrument distinguishes them.
|
|
706
|
+
matching: strict
|
|
707
|
+
format:
|
|
708
|
+
pattern: "LL 99999"
|
|
709
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'
|
|
710
|
+
regex_strict: '\AFL[- ]?\d{1,5}\z'
|
|
711
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
712
|
+
format_evidence: statutory
|
|
713
|
+
progression: "repeats the number of the towing vehicle's plate — this plate carries no independent number space"
|
|
714
|
+
design:
|
|
715
|
+
plate: { w: 500, h: 110, unit: mm, note: "Langformat only — Art. 72 Abs. 3 Bst. d gives this plate ONE format, unlike the standard series" }
|
|
716
|
+
background: { color: "#CC0000", finish: retroreflective-optional, hex_basis: observed, spec_note: "'rotem Grund und weisser Schrift', Art. 71 Abs. 1 Bst. g" }
|
|
717
|
+
foreground: "#FFFFFF"
|
|
718
|
+
band: { side: none }
|
|
719
|
+
emblem: { present: true, rendered: placeholder }
|
|
720
|
+
rear_differs: false
|
|
721
|
+
region_encoding: none
|
|
722
|
+
notes: >-
|
|
723
|
+
KONTROLLSCHILD FÜR HINTERE LASTENTRÄGER — the red repeater plate for a
|
|
724
|
+
rear-mounted load carrier (a bicycle rack or similar) that obscures the
|
|
725
|
+
real plate. Its validity is CONDITIONAL, and the ordinance says so in
|
|
726
|
+
terms: Art. 71 Abs. 4, "Das Kontrollschild für hintere Lastenträger nach
|
|
727
|
+
Abs. 1 Bst. g ist nur gültig, wenn es zusammen mit den zwei am Motorwagen
|
|
728
|
+
angebrachten schwarzen Kontrollschildern nach Abs. 1 Bst. a verwendet
|
|
729
|
+
wird." It is therefore never an independent registration — it is a
|
|
730
|
+
repeater, and a consumer must not treat a red plate as a vehicle's
|
|
731
|
+
registration in its own right.
|
|
732
|
+
sources:
|
|
733
|
+
- "https://www.gesetze.li/chrono/html/2021307000 # LGBl. 2021 Nr. 307, Verordnung vom 5. Oktober 2021, the split commencement clause putting Art. 71 Abs. 1 Bst. g in force on 1 March 2022"
|
|
734
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 1 Bst. g, Art. 71 Abs. 4 (the validity condition), Art. 72 Abs. 3 Bst. d (500x110 mm)"
|
|
735
|
+
|
|
736
|
+
# =========================================================================
|
|
737
|
+
# THE MOPED PLATE — its own article, its own size, its own rules, and the
|
|
738
|
+
# only sourced digit width in the file.
|
|
739
|
+
# =========================================================================
|
|
740
|
+
- id: li-moped
|
|
741
|
+
class: moped
|
|
742
|
+
categories: [moped]
|
|
743
|
+
period: { start: 1978 }
|
|
744
|
+
period_evidence: instrument-in-force-upper-bound
|
|
745
|
+
matching: strict
|
|
746
|
+
format:
|
|
747
|
+
pattern: "LL 99999"
|
|
748
|
+
regex: '\A[A-Z]{2}[- ]?\d{5}\z'
|
|
749
|
+
regex_strict: '\AFL[- ]?\d{5}\z'
|
|
750
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
751
|
+
format_evidence: statutory
|
|
752
|
+
charset:
|
|
753
|
+
notes: >-
|
|
754
|
+
THE ONE SOURCED DIGIT WIDTH IN THIS FILE. Art. 82 Abs. 6 says
|
|
755
|
+
"die 5-stelligen Kontrollschildnummern" — five-digit numbers, in
|
|
756
|
+
terms. Every other series in this file uses \d{1,5} as a practical
|
|
757
|
+
bound because the ordinance caps nothing; here the five is the
|
|
758
|
+
ordinance's own word, so `regex` states it exactly and no
|
|
759
|
+
`regex_strict` is needed.
|
|
760
|
+
separator_note: >-
|
|
761
|
+
The moped plate's layout is different again: Art. 82 Abs. 6 puts FL at
|
|
762
|
+
the TOP with the insurance vignette beside it and the five digits BELOW,
|
|
763
|
+
on two lines. The pattern spells a space for the break.
|
|
764
|
+
design:
|
|
765
|
+
plate: { w: 100, h: 140, unit: mm, note: "Art. 82 Abs. 6, stated as 14 cm high and 10 cm wide — PORTRAIT, and the only portrait format in Liechtenstein" }
|
|
766
|
+
background: { color: "#FFD700", finish: retroreflective, hex_basis: observed, spec_note: "Art. 82 Abs. 6 requires a yellow reflective coating in terms — 'weisen einen gelb reflektierenden Belag auf'. This is the ONLY series where reflection is mandatory rather than optional." }
|
|
767
|
+
foreground: "#000000"
|
|
768
|
+
band: { side: none }
|
|
769
|
+
emblem:
|
|
770
|
+
present: false
|
|
771
|
+
note: "the moped plate carries NO coat of arms — Art. 82 Abs. 6 lists FL, the insurance vignette and the number, and the arms are absent from that list. A sourced negative, and a real difference from every other Liechtenstein plate."
|
|
772
|
+
vignette: { present: true, position: "top, beside the FL", note: "Versicherungsvignette — the insurance sticker is part of the prescribed layout, not an add-on" }
|
|
773
|
+
layout: "FL top left, insurance vignette beside it, the five-digit number below on two lines (Art. 82 Abs. 6)"
|
|
774
|
+
rear_differs: false
|
|
775
|
+
region_encoding: none
|
|
776
|
+
notes: >-
|
|
777
|
+
MOTORFAHRRAD (moped) plates, governed by their own article rather than by
|
|
778
|
+
the Art. 71/72 scheme. Four things set them apart and all four are
|
|
779
|
+
statutory: a portrait 100x140 mm format, MANDATORY yellow reflective
|
|
780
|
+
material, NO coat of arms, and an integral insurance vignette. The
|
|
781
|
+
five-digit width is the only digit count the Liechtenstein ordinance
|
|
782
|
+
states anywhere.
|
|
783
|
+
sources:
|
|
784
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 82 Abs. 6, verbatim: 'Kontrollschilder für Motorfahrräder sind 14 cm hoch und 10 cm breit. Sie sind aus korrosionsbeständigem Metall und weisen einen gelb reflektierenden Belag auf. Buchstaben und Zahlen haben eine schwarze Farbe. Oben sind das Landeskennzeichen FL, daneben die Versicherungsvignette und darunter auf zwei Linien die 5-stelligen Kontrollschildnummern erhaben eingepresst.'"
|
|
785
|
+
|
|
786
|
+
# =========================================================================
|
|
787
|
+
# MARKED SERIES — the letter suffixes of Art. 71 Abs. 2 and the VVV.
|
|
788
|
+
# =========================================================================
|
|
789
|
+
- id: li-dealer-u
|
|
790
|
+
class: dealer
|
|
791
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
792
|
+
period: { start: 1978 }
|
|
793
|
+
period_evidence: instrument-in-force-upper-bound
|
|
794
|
+
matching: strict
|
|
795
|
+
format:
|
|
796
|
+
pattern: "LL 99999 U"
|
|
797
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}[- ]?U\z'
|
|
798
|
+
regex_strict: '\AFL[- ]?\d{1,5}[- ]?U\z'
|
|
799
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+[- ]?U\z'
|
|
800
|
+
format_evidence: statutory
|
|
801
|
+
charset:
|
|
802
|
+
notes: >-
|
|
803
|
+
The U is a MARKING LETTER at the right-hand edge of the plate, not a
|
|
804
|
+
serial character in the ordinary sense — but it is printed, it is
|
|
805
|
+
part of what a reader sees, and it distinguishes the string, so it is
|
|
806
|
+
carried in the pattern. Art. 74 Abs. 3 fixes its position: "am rechten
|
|
807
|
+
Schilderrand".
|
|
808
|
+
design:
|
|
809
|
+
plate: { w: 300, h: 80, unit: mm }
|
|
810
|
+
background: { color: "#000000", finish: retroreflective-optional, hex_basis: observed }
|
|
811
|
+
foreground: "#FFFFFF"
|
|
812
|
+
band: { side: none }
|
|
813
|
+
emblem: { present: true, rendered: placeholder }
|
|
814
|
+
layout: "as the standard plate, with the letter U added at the right-hand edge (Art. 74 Abs. 3)"
|
|
815
|
+
rear_differs: true
|
|
816
|
+
region_encoding: none
|
|
817
|
+
notes: >-
|
|
818
|
+
KOLLEKTIVSCHILDER (Händlerschilder) — dealer/trade plates, marked with the
|
|
819
|
+
letter U and bound to a business rather than to a vehicle. Two provisions
|
|
820
|
+
carry it: Art. 71 Abs. 2 Bst. c creates the marking, Art. 74 Abs. 3 places
|
|
821
|
+
it at the right-hand edge. The colour follows the standard series because
|
|
822
|
+
Art. 71 Abs. 1 Bst. a governs the ground and the U is a marking rather
|
|
823
|
+
than a colour class.
|
|
824
|
+
sources:
|
|
825
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 2 Bst. c and Art. 74 Abs. 3, verbatim: 'Auf Kollektivschildern (Händlerschilder) ist am rechten Schilderrand zudem der Buchstabe \"U\" aufgetragen.'"
|
|
826
|
+
|
|
827
|
+
- id: li-rental-v
|
|
828
|
+
class: dealer
|
|
829
|
+
categories: [car, van, bus]
|
|
830
|
+
period: { start: 1978, end: 2001 }
|
|
831
|
+
period_evidence: instrument-dated-both-ends
|
|
832
|
+
period_note: >-
|
|
833
|
+
A CLEANLY CLOSED SERIES. The marking is in the 1978 VZV as originally
|
|
834
|
+
enacted — Art. 71 Abs. 2 Bst. b, "die Schilder für Mietwagen mit dem
|
|
835
|
+
Buchstaben 'V'" — and Bst. b was REPEALED by LGBl. 2001 Nr. 118. The start
|
|
836
|
+
is an upper bound in the same sense as the other 1978 rows; the end is
|
|
837
|
+
fixed by a repealing instrument, which is the strongest kind of end date
|
|
838
|
+
available.
|
|
839
|
+
matching: strict
|
|
840
|
+
format:
|
|
841
|
+
pattern: "LL 99999 V"
|
|
842
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}[- ]?V\z'
|
|
843
|
+
regex_strict: '\AFL[- ]?\d{1,5}[- ]?V\z'
|
|
844
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+[- ]?V\z'
|
|
845
|
+
format_evidence: statutory
|
|
846
|
+
design:
|
|
847
|
+
plate: { w: 300, h: 80, unit: mm }
|
|
848
|
+
background: { color: "#000000", finish: retroreflective-optional, hex_basis: observed }
|
|
849
|
+
foreground: "#FFFFFF"
|
|
850
|
+
band: { side: none }
|
|
851
|
+
emblem: { present: true, rendered: placeholder }
|
|
852
|
+
rear_differs: true
|
|
853
|
+
region_encoding: none
|
|
854
|
+
notes: >-
|
|
855
|
+
MIETWAGEN — rental cars, marked with the letter V. Repealed in 2001 and
|
|
856
|
+
not reissued. Recorded because plates in circulation outlive their
|
|
857
|
+
instruments and a parse API meeting an old V plate should be able to date
|
|
858
|
+
it: a V marking places the registration before 2001. Liechtenstein and
|
|
859
|
+
Switzerland repealed their equivalent rental markings within months of
|
|
860
|
+
each other, from separately-enacted ordinances — a striking convergence
|
|
861
|
+
that is NOT a legal relationship (structural fact 4).
|
|
862
|
+
sources:
|
|
863
|
+
- "https://www.gesetze.li/chrono/html/1978020000 # the ORIGINAL VZV text, Art. 71 Abs. 2 Bst. b: 'die Schilder für Mietwagen mit dem Buchstaben \"V\"'"
|
|
864
|
+
- "https://www.gesetze.li/konso/1978.020 # the consolidated text showing Art. 71 Abs. 2 Bst. b as 'Aufgehoben', repealed by LGBl. 2001 Nr. 118"
|
|
865
|
+
|
|
866
|
+
- id: li-provisional
|
|
867
|
+
class: temporary
|
|
868
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
869
|
+
period: { start: 1978 }
|
|
870
|
+
period_evidence: instrument-in-force-upper-bound
|
|
871
|
+
matching: strict
|
|
872
|
+
format:
|
|
873
|
+
pattern: "LL 99999"
|
|
874
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}\z'
|
|
875
|
+
regex_strict: '\AFL[- ]?\d{1,5}\z'
|
|
876
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+\z'
|
|
877
|
+
format_evidence: statutory
|
|
878
|
+
separator_note: >-
|
|
879
|
+
The distinguishing mark is a raised vertical RED BAR after the number,
|
|
880
|
+
not a character — it cannot appear in the serial and does not appear in
|
|
881
|
+
the pattern. The plate string alone is indistinguishable from an
|
|
882
|
+
ordinary registration.
|
|
883
|
+
design:
|
|
884
|
+
plate: { w: 300, h: 80, unit: mm, note: "VVV Anhang 1a Ziff. 2: provisional plates follow VZV Art. 72 and 74 for construction and lettering" }
|
|
885
|
+
background: { color: "#000000", finish: retroreflective-optional, hex_basis: observed }
|
|
886
|
+
foreground: "#FFFFFF"
|
|
887
|
+
band: { side: none }
|
|
888
|
+
emblem: { present: true, rendered: placeholder }
|
|
889
|
+
red_bar:
|
|
890
|
+
present: true
|
|
891
|
+
color: "#CC0000"
|
|
892
|
+
front_and_motorcycle: { w: 33, h: 67, unit: mm }
|
|
893
|
+
rear_motorcar: { w: 36, h: 75, unit: mm }
|
|
894
|
+
note: "raised, vertical, immediately after the number. The year preceding the expiry year is stamped INTO the bar (VVV Anhang 1a Ziff. 4)."
|
|
895
|
+
rear_differs: true
|
|
896
|
+
region_encoding: none
|
|
897
|
+
notes: >-
|
|
898
|
+
PROVISORISCHE ZULASSUNG — provisional registration under VVV Art. 19. The
|
|
899
|
+
spec lives in the INSURANCE ordinance, not the admission ordinance: VZV
|
|
900
|
+
Art. 71 Abs. 2 Bst. a merely points at "Art. 19 VVV", and the physical
|
|
901
|
+
description is in VVV Anhang 1a. Its identity is a physical feature (the
|
|
902
|
+
embossed red bar) rather than anything in the string, so `matching` is
|
|
903
|
+
strict on shape but a match cannot distinguish this series from
|
|
904
|
+
li-standard — a limitation stated rather than hidden.
|
|
905
|
+
sources:
|
|
906
|
+
- "https://www.gesetze.li/konso/html/1978021000 # VVV, LGBl. 1978 Nr. 21, Anhang 1a (zu Art. 19) Bst. A Ziff. 2-4: the red bar, its dimensions, and the expiry-year stamping"
|
|
907
|
+
- "https://www.gesetze.li/konso/1978.020 # VZV Art. 71 Abs. 2 Bst. a, pointing to Art. 19 VVV"
|
|
908
|
+
|
|
909
|
+
- id: li-provisional-z
|
|
910
|
+
class: temporary
|
|
911
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
912
|
+
period: { start: 1978 }
|
|
913
|
+
period_evidence: instrument-in-force-upper-bound
|
|
914
|
+
matching: strict
|
|
915
|
+
format:
|
|
916
|
+
pattern: "LL 99999 Z"
|
|
917
|
+
regex: '\A[A-Z]{2}[- ]?\d{1,5}[- ]?Z\z'
|
|
918
|
+
regex_strict: '\AFL[- ]?\d{1,5}[- ]?Z\z'
|
|
919
|
+
regex_statutory: '\A[A-Z]{2}[- ]?\d+[- ]?Z\z'
|
|
920
|
+
format_evidence: statutory
|
|
921
|
+
charset:
|
|
922
|
+
notes: >-
|
|
923
|
+
The Z is printed in addition to the red bar and IS visible in the
|
|
924
|
+
string, which is what makes this series textually distinguishable
|
|
925
|
+
where plain li-provisional is not.
|
|
926
|
+
design:
|
|
927
|
+
plate: { w: 300, h: 80, unit: mm }
|
|
928
|
+
background: { color: "#000000", finish: retroreflective-optional, hex_basis: observed }
|
|
929
|
+
foreground: "#FFFFFF"
|
|
930
|
+
band: { side: none }
|
|
931
|
+
emblem: { present: true, rendered: placeholder }
|
|
932
|
+
red_bar:
|
|
933
|
+
present: true
|
|
934
|
+
color: "#CC0000"
|
|
935
|
+
front_and_motorcycle: { w: 33, h: 67, unit: mm }
|
|
936
|
+
rear_motorcar: { w: 36, h: 75, unit: mm }
|
|
937
|
+
rear_differs: true
|
|
938
|
+
region_encoding: none
|
|
939
|
+
notes: >-
|
|
940
|
+
UNVERZOLLTE FAHRZEUGE — provisional plates for vehicles not yet cleared
|
|
941
|
+
through customs, marked with an additional Z beside the red bar. The
|
|
942
|
+
customs mark exists because Liechtenstein sits inside the Swiss customs
|
|
943
|
+
area, so "not yet cleared" is a real and common status. THE Z IS FOUND
|
|
944
|
+
NOWHERE IN THE VZV — its only legal source is VVV Anhang 1a Ziff. 3, and
|
|
945
|
+
a researcher reading only the admission ordinance would miss it entirely.
|
|
946
|
+
sources:
|
|
947
|
+
- "https://www.gesetze.li/konso/html/1978021000 # VVV Anhang 1a (zu Art. 19) Bst. A Ziff. 3, verbatim: 'Die Schilder für provisorisch immatrikulierte Motorfahrzeuge tragen anschliessend an die Kontrollnummer einen erhaben gepressten, senkrechten roten Balken; Schilder unverzollter Fahrzeuge tragen zusätzlich den Buchstaben \"Z\".'"
|
|
948
|
+
|
|
949
|
+
# =========================================================================
|
|
950
|
+
# THE PRE-FL SERIES.
|
|
951
|
+
# =========================================================================
|
|
952
|
+
- id: li-l-1915
|
|
953
|
+
class: standard
|
|
954
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
955
|
+
period: { start: 1915, end: 1925 }
|
|
956
|
+
period_evidence: statutory-date
|
|
957
|
+
period_note: >-
|
|
958
|
+
START: the Verordnung of 12 August 1915 (LGBl. 1915 Nr. 13, published
|
|
959
|
+
18 August 1915) creates the mark. The instrument carries no separate
|
|
960
|
+
commencement clause that was located, so 1915 rests on the instrument's
|
|
961
|
+
own date and publication. END: superseded when the FL decree came into
|
|
962
|
+
force on 1 January 1925 — the same boundary li-standard opens on, from the
|
|
963
|
+
same instrument, which is why the two periods meet exactly rather than
|
|
964
|
+
being guessed.
|
|
965
|
+
matching: strict
|
|
966
|
+
format:
|
|
967
|
+
pattern: "L 999"
|
|
968
|
+
regex: '\A[A-Z][- ]?\d+\z'
|
|
969
|
+
regex_strict: '\AL[- ]?\d+\z'
|
|
970
|
+
format_evidence: statutory
|
|
971
|
+
format_note: >-
|
|
972
|
+
The instrument states the GRAMMAR but not the WIDTH: § 2 says the mark
|
|
973
|
+
consists of the letter L and an arabic numeral, with no digit count and
|
|
974
|
+
no ceiling. `\d+` is therefore the honest encoding of the digits — it is
|
|
975
|
+
not a widening, because the ordinance really does set no ceiling, which
|
|
976
|
+
is why this series is `strict` rather than `recall-only`.
|
|
977
|
+
THE LETTER IS THE DSL PROBLEM, not the digits: see
|
|
978
|
+
common.pattern_dsl_limitation. `regex` spells [A-Z] only because the
|
|
979
|
+
human pattern's L is a TOKEN meaning "any letter"; `regex_strict`
|
|
980
|
+
carries the sourced literal L. No `regex_statutory` twin appears because
|
|
981
|
+
`regex` is already at the outer legal bound on the digits.
|
|
982
|
+
design:
|
|
983
|
+
background: { color: "#000000", finish: non-reflective, hex_basis: observed }
|
|
984
|
+
foreground: "#FFFFFF"
|
|
985
|
+
colour_caveat: >-
|
|
986
|
+
NOT SOURCED. The white-on-black colouring is universally reported by
|
|
987
|
+
secondary accounts, but the complete text of the 1915 decree was read
|
|
988
|
+
and contains NO colour specification — it cross-refers instead to § 30
|
|
989
|
+
of the Austrian Ministerialverordnung of 27 September 1905 (RGBl.
|
|
990
|
+
Nr. 156), which was not fetched. The colour claim is therefore
|
|
991
|
+
Wikipedia-grade and the hexes above are placeholders for it. Marked
|
|
992
|
+
because it would be easy to assume a primary source here where there
|
|
993
|
+
is none.
|
|
994
|
+
colour_evidence: secondary-wikipedia
|
|
995
|
+
band: { side: none }
|
|
996
|
+
emblem: { present: false, note: "no arms provision in the 1915 decree" }
|
|
997
|
+
region_encoding: none
|
|
998
|
+
notes: >-
|
|
999
|
+
THE PRE-FL MARK. Liechtenstein's first own registration mark: the letter L
|
|
1000
|
+
and an arabic number, replacing the Austrian "W" (Vorarlberg) plates used
|
|
1001
|
+
under the earlier Austrian-aligned regime. The decree also forbids
|
|
1002
|
+
carrying both marks at once — "Die gleichzeitige Anbringung
|
|
1003
|
+
liechtensteinischer und österreichischer Erkennungszeichen ist untersagt."
|
|
1004
|
+
RECORDED DISAGREEMENT: the 1915 decree names its own predecessor as the
|
|
1005
|
+
"Verordnung vom 10. Juni 1906, LGBl. 1906 Nr. 2", while secondary accounts
|
|
1006
|
+
date that 1906 ordinance to 18 June. The instrument says 10 June; LGBl.
|
|
1007
|
+
1906 Nr. 2 itself was not fetched to settle it.
|
|
1008
|
+
sources:
|
|
1009
|
+
- "https://www.gesetze.li/chrono/html/1915013000 # LGBl. 1915 Nr. 13, Verordnung vom 12. August 1915, § 2: 'Diese Erkennungszeichen bestehen in dem Bst. L und einer arabischen Zahl.'"
|
|
1010
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Liechtenstein # SECONDARY (secondary-wikipedia): the white-on-black colouring and the preceding Austrian 'W' plates, neither of which the 1915 instrument states"
|