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/mt.yml
ADDED
|
@@ -0,0 +1,854 @@
|
|
|
1
|
+
# plates/mt.yml — Malta (PRD-PLATES gate L1, wave 2).
|
|
2
|
+
#
|
|
3
|
+
# THE INTERESTING THING ABOUT MALTA IS THE LETTER BLOCK, AND IT IS PUBLISHED.
|
|
4
|
+
# Most small jurisdictions allocate class-marking letters by unpublished
|
|
5
|
+
# administrative practice. Malta does not: regulation 31 of S.L. 368.02, headed
|
|
6
|
+
# "Particular registration marks", enumerates the blocks in binding subsidiary
|
|
7
|
+
# legislation, block by block, with the vehicle class each denotes. That
|
|
8
|
+
# regulation is quoted verbatim in the series below and is the backbone of this
|
|
9
|
+
# file. Everything here is primary — legislation.mt, consolidated to 23-01-2026
|
|
10
|
+
# — and no secondary source was needed except for ONE table, flagged where it
|
|
11
|
+
# appears.
|
|
12
|
+
#
|
|
13
|
+
# ============================================================================
|
|
14
|
+
# THE INSTRUMENT CHAIN, AND A CORRECTION TO THE OBVIOUS GUESS
|
|
15
|
+
# ============================================================================
|
|
16
|
+
# Plates are NOT under Cap. 65 (the Traffic Regulation Ordinance, 1931). They
|
|
17
|
+
# were until 2004 and are not now; L.N. 476 of 2004 reg. 52 deleted the plate
|
|
18
|
+
# regulations out of S.L. 65.11. All current plate law is in ONE instrument:
|
|
19
|
+
#
|
|
20
|
+
# * CAP. 368 — Motor Vehicles Registration and Licensing Act (Act X of 1994,
|
|
21
|
+
# in force 1-1-1994). The parent Act. Art. 20 is the regulation-making
|
|
22
|
+
# power; art. 8(4) creates the weekend/high-emission regime; art. 25 (added
|
|
23
|
+
# by Act XIII of 2015) creates the vintage regime.
|
|
24
|
+
# * S.L. 368.02 — Registration and Licensing of Motor Vehicles Regulations,
|
|
25
|
+
# originating as L.N. 198 of 2009, deemed in force 1-1-2009 (save reg. 6(3),
|
|
26
|
+
# 1-8-2009). THE MASTER INSTRUMENT. Reg. 30 + First Schedule (mark formats
|
|
27
|
+
# and fees), reg. 31 (the letter blocks), reg. 32 (display), reg. 34 +
|
|
28
|
+
# Second Schedule (plate specification), reg. 36/36A (trade and temporary
|
|
29
|
+
# plates), reg. 6C/6D (weekend and vintage).
|
|
30
|
+
# Amended by L.N. 110 and 195 of 2011, 127 of 2013, 178 and 342 of 2015,
|
|
31
|
+
# 125 of 2017, 139 of 2018, 265 of 2022, 340 of 2024, 160 and 262 of 2025,
|
|
32
|
+
# 21 of 2026, and by Act XV of 2009 and Act XXI of 2020.
|
|
33
|
+
# * S.L. 499.59 — Taxi Services Regulations (L.N. 369 of 2010), which govern
|
|
34
|
+
# the taxi mark and are the ONLY place Maltese law encodes geography.
|
|
35
|
+
#
|
|
36
|
+
# THE REVOCATION CHAIN, walked instrument by instrument, because it is what
|
|
37
|
+
# dates the series:
|
|
38
|
+
# Motor Vehicles Regulations 1948
|
|
39
|
+
# -> repealed by L.N. 128 of 1994 (Motor Vehicles Regulations 1994, S.L.
|
|
40
|
+
# 65.11), made by the COMMISSIONER OF POLICE with the Traffic Control
|
|
41
|
+
# Board under s.17 of the Ordinance;
|
|
42
|
+
# -> L.N. 114 of 2004, Vehicles Identification Plates Regulations, IN FORCE
|
|
43
|
+
# 9 MARCH 2004 — the FIRST published prescription of the three-letter,
|
|
44
|
+
# three-digit format;
|
|
45
|
+
# -> L.N. 476 of 2004, in force 1 MAY 2004 (Malta's EU accession day),
|
|
46
|
+
# which revoked L.N. 114 of 2004 and introduced the EU band;
|
|
47
|
+
# -> L.N. 198 of 2009 reg. 45 revoked L.N. 476 of 2004; it is today's
|
|
48
|
+
# S.L. 368.02.
|
|
49
|
+
#
|
|
50
|
+
# ============================================================================
|
|
51
|
+
# THE BIG SOURCED NEGATIVE: BEFORE 2004 MALTA PUBLISHED NO PLATE FORMAT
|
|
52
|
+
# ============================================================================
|
|
53
|
+
# The same finding this wave made in Cyprus, reached the same way — by reading
|
|
54
|
+
# the delegating provision rather than by failing to find a schedule. L.N. 128
|
|
55
|
+
# of 1994, reg. 32, verbatim:
|
|
56
|
+
#
|
|
57
|
+
# "Each identification number and letter shall be assigned to a motor vehicle
|
|
58
|
+
# by the Commissioner of Police. The dimensions of any letter figure of the
|
|
59
|
+
# identification number of any motor vehicle, the total width of the space
|
|
60
|
+
# taken by any such letter figure and the space between any two such letter
|
|
61
|
+
# figures shall be those as may be determined FROM TIME TO TIME BY THE
|
|
62
|
+
# COMMISSIONER OF POLICE on the advice of the Traffic Control Board or, in
|
|
63
|
+
# the case of public transport vehicles, by the Public Transport Authority."
|
|
64
|
+
#
|
|
65
|
+
# And reg. 31: "Every motor vehicle shall bear an identification number which
|
|
66
|
+
# will be allotted to it and issued by the Commissioner of Police" — with no
|
|
67
|
+
# format prescribed anywhere.
|
|
68
|
+
#
|
|
69
|
+
# CONSEQUENCE: the 1952, 1979 and 1995 series changes were ADMINISTRATIVE
|
|
70
|
+
# DECISIONS of the Commissioner of Police under a delegating regulation. There
|
|
71
|
+
# is no instrument to date them from. Every pre-2004 series below is therefore
|
|
72
|
+
# `matching: recall-only` with `period_evidence: secondary-dated`, and their
|
|
73
|
+
# boundaries are observational, not legislated. That is a well-evidenced gap:
|
|
74
|
+
# all 30 Cap. 65 subsidiary instruments and both Cap. 368 ones were enumerated
|
|
75
|
+
# and the whole 1948->2009 revocation chain was walked to establish it.
|
|
76
|
+
#
|
|
77
|
+
# ============================================================================
|
|
78
|
+
# THREE SECONDARY CLAIMS THIS FILE REFUTES FROM THE PRIMARY
|
|
79
|
+
# ============================================================================
|
|
80
|
+
# 1. "GVH = Department of Health." FALSE. Reg. 31(2): GVH is Government
|
|
81
|
+
# HEAVY vehicles, GVN is other Government vehicles. There is no health block.
|
|
82
|
+
# 2. "Trailers begin with TR." FALSE — there is no Maltese trailer mark at all.
|
|
83
|
+
# Reg. 32(4) makes a trailer display THE TOWING VEHICLE'S mark.
|
|
84
|
+
# 3. "Malta mandates FE-Schrift." NOT IN LAW. No typeface is named anywhere in
|
|
85
|
+
# Maltese plate law; see the font block on mt-standard-2004.
|
|
86
|
+
# A fourth, "vintage plates went silver-on-black in 2017", is off by a year AND
|
|
87
|
+
# omits an entire intermediate design — they were GREEN from 2015 and became
|
|
88
|
+
# silver-on-black in 2018. Both steps are instrument-dated below.
|
|
89
|
+
#
|
|
90
|
+
# ============================================================================
|
|
91
|
+
# WHAT MALTESE LAW DOES **NOT** SPECIFY — a sourced negative worth shipping
|
|
92
|
+
# ============================================================================
|
|
93
|
+
# The Second Schedule to S.L. 368.02 prescribes NO OVERALL PLATE DIMENSIONS,
|
|
94
|
+
# NO CHARACTER HEIGHT and NO CHARACTER STROKE WIDTH. It gives two diagrams
|
|
95
|
+
# (bitmaps reading "MAL 777", with no dimensional annotations), a 5 mm black
|
|
96
|
+
# border, "metal material", the colours, and detailed geometry for the EU band
|
|
97
|
+
# ONLY. The 520 x 110 mm that circulates for Malta is NOT a Maltese legal
|
|
98
|
+
# requirement; it is the European convention. This file therefore carries no
|
|
99
|
+
# `design.plate` dimensions for any series, and that absence is deliberate and
|
|
100
|
+
# sourced rather than a gap in research.
|
|
101
|
+
#
|
|
102
|
+
# COLOUR POLICY: the Second Schedule names plate colours in words ("black
|
|
103
|
+
# characters ... on white reflective material", "silver characters on a black
|
|
104
|
+
# background", "red characters") with no chromaticity data. The ONE numeric
|
|
105
|
+
# colour in Maltese plate law is the euroband blue, given as a MUNSELL
|
|
106
|
+
# reference — "Retro-reflecting blue background (Munsell reference 5, 9 pb
|
|
107
|
+
# 3,4/15,1)" — which is a colour-order-system notation, not an sRGB value and
|
|
108
|
+
# not a CIE box. It is recorded verbatim on the band as `color_spec_munsell`;
|
|
109
|
+
# the hex beside it stays `hex_basis: observed`.
|
|
110
|
+
jurisdiction: mt
|
|
111
|
+
authority:
|
|
112
|
+
name: Transport Malta / Authority for Transport in Malta — Motor Vehicles Registration and Licensing Act (Cap. 368) and S.L. 368.02
|
|
113
|
+
url: "https://legislation.mt/eli/sl/368.2/eng"
|
|
114
|
+
binding: vehicle
|
|
115
|
+
|
|
116
|
+
letter_blocks:
|
|
117
|
+
note: >-
|
|
118
|
+
THE CENTRE OF THIS FILE. S.L. 368.02 reg. 31, "Particular registration
|
|
119
|
+
marks", is the published allocation of letter blocks to vehicle classes.
|
|
120
|
+
Reg. 31(1) opens: "Registration marks allotted to vehicles used for hire or
|
|
121
|
+
for reward shall include the following Roman Alphabet letters followed by
|
|
122
|
+
three numbers". Note the drafting convention that runs through it: "a
|
|
123
|
+
letter followed by the letters XX" means a VARIABLE leading letter plus a
|
|
124
|
+
fixed two- or three-letter block, so the printed mark is four characters
|
|
125
|
+
(e.g. a route bus is [letter]BUS); where the text says only "the letters
|
|
126
|
+
XXX", the block is the whole letter group. That distinction is what makes
|
|
127
|
+
the regex families below three-or-four letters wide.
|
|
128
|
+
source: "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 reg. 31, consolidated to 23-01-2026; text served as PDF from https://legislation.mt/getpdf/6980741263aaee247463a137"
|
|
129
|
+
hire_or_reward: # reg. 31(1), each entry quoted from the regulation
|
|
130
|
+
- { block: BUS, leading_letter: true, meaning: "route buses", verbatim: "a letter followed by the letters BUS in the case of route buses" }
|
|
131
|
+
- { block: PY, leading_letter: true, meaning: "passenger transport vehicles other than route buses (coaches)", verbatim: "a letter followed by the letters PY in the case of passenger transport vehicles other than route buses" }
|
|
132
|
+
- { block: LY, leading_letter: true, meaning: "light passenger transport vehicles", verbatim: "a letter followed by the letters LY in the case of light passenger transport vehicles" }
|
|
133
|
+
- { block: XY, leading_letter: true, meaning: "vintage buses", verbatim: "a letter followed by the letters XY in the case of vintage buses" }
|
|
134
|
+
- { block: QZ, leading_letter: true, meaning: "motor vehicles used for hire or leasing", verbatim: "a letter followed by the letters QZ in the case of motor vehicles used for hire or leasing" }
|
|
135
|
+
- { block: HQ, leading_letter: true, meaning: "carriage of goods by hauliers operating nationally", verbatim: "a letter followed by the letters HQ in the case of vehicles used for the carriage of goods by hauliers operating nationally" }
|
|
136
|
+
- { block: OY, leading_letter: true, meaning: "open-top buses", verbatim: "a letter followed by the letters OY in respect of open-top buses" }
|
|
137
|
+
- { block: RY, leading_letter: true, meaning: "trackless trains", verbatim: "a letter followed by the letters RY in respect of trackless trains" }
|
|
138
|
+
- { block: HRS, leading_letter: false, meaning: "motor hearses", verbatim: "the letters HRS in the case of motor hearses" }
|
|
139
|
+
- { block: CABS, leading_letter: false, meaning: "electric mini cabs", verbatim: "the letters CABS in the case of electric mini cabs" }
|
|
140
|
+
- { block: TEY, leading_letter: false, meaning: "electric trolley vehicles", verbatim: "the letters TEY in respect of electric trolley vehicles", added_by: "L.N. 139 of 2018" }
|
|
141
|
+
- { block: MHY, leading_letter: false, meaning: "Malta heritage buses", verbatim: "the letters MHY in respect of Malta heritage buses", added_by: "L.N. 139 of 2018" }
|
|
142
|
+
- { block: CSH, leading_letter: false, meaning: "car sharing vehicles", verbatim: "the letters CSH in respect of car sharing vehicles", added_by: "L.N. 139 of 2018" }
|
|
143
|
+
- { block: "TAXI M", leading_letter: false, meaning: "taxis operated in Malta", note: "reg. 31(1) writes 'the letters TAXI M followed by three numerical figures'; S.L. 499.59 puts the M AFTER the digits and governs — see mt-taxi-2010" }
|
|
144
|
+
- { block: "TAXI G", leading_letter: false, meaning: "taxis operated in Gozo", note: "same conflict as TAXI M" }
|
|
145
|
+
official: # reg. 31(2)-(7)
|
|
146
|
+
- { block: GVH, meaning: "Government Department, HEAVY vehicles", verbatim: "the three Roman Alphabet letters GVH followed by three numbers in the case of heavy vehicles", correction: "NOT 'Department of Health' — that is a persistent secondary error" }
|
|
147
|
+
- { block: GVN, meaning: "Government Department, other vehicles", verbatim: "the letters GVN followed by three numbers in the case of other vehicles" }
|
|
148
|
+
- { block: GVP, meaning: "Police Department", verbatim: "Motor vehicles registered and licensed in the name of the Police Department shall be allotted registration marks with the three Roman Alphabet letters GVP followed by three numbers" }
|
|
149
|
+
- { block: GVA, meaning: "Armed Forces of Malta", verbatim: "Motor vehicles registered and licensed in the name of the Armed Forces of Malta shall be allotted registration marks with the three Roman Alphabet letters GVA followed by three numbers" }
|
|
150
|
+
- { block: CD, leading_letter: false, meaning: "diplomatic representations in Malta", verbatim: "the letters CD followed by another letter and three numbers" }
|
|
151
|
+
- { block: DMS, meaning: "staff of diplomatic missions", verbatim: "the letters DMS followed by three numbers" }
|
|
152
|
+
- { block: GV, leading_letter: true, meaning: "N1 vehicles with a seating capacity of not more than two persons", verbatim: "The registration marks for N1 vehicles with a seating capacity of not more than two persons shall be a letter followed by the letters GV and three numbers", note: "so a BARE [x]GV mark is a small van, NOT a government vehicle — the government blocks are the three-letter GVN/GVH/GVP/GVA. This is the subtlest trap in the Maltese system" }
|
|
153
|
+
ministerial:
|
|
154
|
+
block: "GM"
|
|
155
|
+
verbatim: "any motor vehicle assigned to a Government Minister and bearing, instead of its identification number, the letters G.M."
|
|
156
|
+
source_reg: "S.L. 368.02 reg. 17(3); the same wording goes back to L.N. 128 of 1994 reg. 28(2)"
|
|
157
|
+
note: >-
|
|
158
|
+
THE INSTRUMENT PRINTS IT WITH FULL STOPS — "G.M." — and the mark REPLACES
|
|
159
|
+
the identification number rather than accompanying it. The full stop is
|
|
160
|
+
not in this dataset's serial alphabet and is in the forgiving set
|
|
161
|
+
(plates/_meta/separators.yml), so the block is recorded here as GM. Not
|
|
162
|
+
authored as a series: reg. 17(3) prescribes no digits and the mark is a
|
|
163
|
+
substitution for a number rather than a number, so there is no pattern to
|
|
164
|
+
write. Secondary sources describe a "GM 99" form; no instrument supports
|
|
165
|
+
the two digits.
|
|
166
|
+
lapsed:
|
|
167
|
+
note: "blocks that were prescribed and then withdrawn — kept because plates issued under them remain on the road, exactly as the period discipline in PRD-PLATES §2.4 requires for decode rows"
|
|
168
|
+
blocks:
|
|
169
|
+
- { block: BY, meaning: "route buses", period: "2004-2018", note: "replaced by BUS by L.N. 139 of 2018 s.4(a). The familiar DBY / EBY / FBY marks of the old Malta buses are instances of this rule with a varying leading letter — not three separate blocks" }
|
|
170
|
+
- { block: CY, meaning: "coaches", period: "2004-2011", note: "replaced by PY by L.N. 110 of 2011 s.6(b)" }
|
|
171
|
+
- { block: MY, meaning: "minibuses and midibuses", period: "2004-2011", note: "replaced by LY" }
|
|
172
|
+
- { block: SY, meaning: "special minibuses", period: "2004-2011", note: "replaced by XY" }
|
|
173
|
+
- { block: VY, meaning: "vans", period: "2004-2011", note: "replaced by the GV N1 rule" }
|
|
174
|
+
- { block: GY, meaning: "public hire vehicles driven by the service operator or his employee (chauffeur-driven)", period: "2004-2011", note: "deleted by L.N. 110 of 2011 s.6(f). Cap. 368 Fifth Schedule Category E(4) still refers to a mark 'having one letter followed by the letters GY prior to the 1st January, 2010'" }
|
|
175
|
+
- { block: TY, meaning: "taxicars in Malta", period: "2004-2011", note: "replaced by TAXI M" }
|
|
176
|
+
- { block: WY, meaning: "taxicars in Gozo", period: "2004-2011", note: "replaced by TAXI G. TY/WY were the earlier Malta/Gozo geographic pair" }
|
|
177
|
+
- { block: K, leading_letter: false, meaning: "self-drive motor vehicles including motor cycles", period: "2004-2011", note: "'two letters followed by the letter K'; deleted by L.N. 110 of 2011. Cap. 368 Fifth Schedule Category E(3) refers to it 'prior to the 1st January, 2010'" }
|
|
178
|
+
- { block: RIP, meaning: "motor hearses", period: "2004-2009", note: "replaced by HRS in L.N. 198 of 2009" }
|
|
179
|
+
- { block: TF, meaning: "vehicles exempt from duty and/or registration tax", period: "2004-2009", note: "L.N. 476 of 2004 reg. 33(6): 'the first two letters TF followed by another letter and three numbers'. Dropped entirely in 2009 — so the widely-repeated 'TF = tax-free' is true only of 2004-2009 plates" }
|
|
180
|
+
not_found:
|
|
181
|
+
note: >-
|
|
182
|
+
Claims searched for in Cap. 368, S.L. 368.02, L.N. 198/2009, L.N. 476/2004
|
|
183
|
+
and L.N. 128/1994, with zero hits in every instrument:
|
|
184
|
+
POSTA (mobile post offices) — no instrument;
|
|
185
|
+
TR / TRL (trailers) — no instrument, and affirmatively contradicted by
|
|
186
|
+
reg. 32(4), which makes a trailer carry the TOWING vehicle's mark;
|
|
187
|
+
any AGRICULTURAL series — "agricultural tractor" is defined in reg. 2 but
|
|
188
|
+
no plate series attaches to it;
|
|
189
|
+
any distinct MOPED series — mopeds fall under the general motorcycle rule;
|
|
190
|
+
the historical YELLOW rental and RED taxi/bus PLATE colours — the nearest
|
|
191
|
+
primary is a DOOR-MARKING rule (S.L. 499.59 reg. 24(5)) requiring the
|
|
192
|
+
taxi's progressive number painted black-on-white in Malta and
|
|
193
|
+
red-on-white in Gozo, 75 mm high, which must not be conflated with plate
|
|
194
|
+
colour.
|
|
195
|
+
|
|
196
|
+
series:
|
|
197
|
+
|
|
198
|
+
# =========================================================================
|
|
199
|
+
# THE CURRENT ORDINARY SERIES — three letters, a gap, three digits.
|
|
200
|
+
# =========================================================================
|
|
201
|
+
- id: mt-standard-2004
|
|
202
|
+
class: standard
|
|
203
|
+
categories: [car, van, truck, motorcycle]
|
|
204
|
+
period: { start: 2004 }
|
|
205
|
+
period_evidence: enacted-commencement
|
|
206
|
+
matching: strict
|
|
207
|
+
format:
|
|
208
|
+
pattern: "LLL 999"
|
|
209
|
+
regex: '\A[A-Z]{3} \d{3}\z'
|
|
210
|
+
charset:
|
|
211
|
+
notes: >-
|
|
212
|
+
NO LETTER EXCLUSIONS. Malta prescribes "three Roman Alphabet
|
|
213
|
+
characters" and excludes nothing — no vowel rule, no I/O/Q rule. That
|
|
214
|
+
is a sourced negative and it is unusual for Europe; contrast Spain
|
|
215
|
+
(20 letters), Italy (22), Greece (14) and Cyprus (12). Consequently
|
|
216
|
+
there is no regex_strict: `regex` already IS the sourced grammar, the
|
|
217
|
+
§2.7 case where a strict twin would add nothing.
|
|
218
|
+
digits: "three Arabic numerals; no range stated, so no leading-zero claim is made"
|
|
219
|
+
pattern_source: >-
|
|
220
|
+
First Schedule to S.L. 368.02, "Standard Alphanumeric Format (Random)",
|
|
221
|
+
verbatim: "Composed of two sets of three characters each, the first set
|
|
222
|
+
composed of three Roman Alphabet characters and the second set composed
|
|
223
|
+
of three Arabic numerals, e.g. XXX 111." The wording originates in the
|
|
224
|
+
First Schedule to L.N. 114 of 2004.
|
|
225
|
+
progression: >-
|
|
226
|
+
RANDOM, and the instrument says so in the format's own name — "Standard
|
|
227
|
+
Alphanumeric Format (RANDOM)". There is no sequential progression to
|
|
228
|
+
infer an era from, which makes a Maltese standard mark undatable from
|
|
229
|
+
the string alone. The one piece of structure is the first letter, and it
|
|
230
|
+
encodes a MONTH rather than a year or a place — see month_encoding.
|
|
231
|
+
separator_note: >-
|
|
232
|
+
No separator glyph is prescribed. The First Schedule's own example is
|
|
233
|
+
written "XXX 111" with a gap and the Second Schedule requires "a
|
|
234
|
+
watermark in the space between the letters and the numbers" — so the gap
|
|
235
|
+
is a real, specified feature of the plate that is occupied by a security
|
|
236
|
+
watermark, not merely typographic whitespace. The emitted SPACE is the
|
|
237
|
+
correct encoding, and it is the same situation as the Italian marchio
|
|
238
|
+
and the German Plaketten: something sits IN the gap, and it is not part
|
|
239
|
+
of the serial.
|
|
240
|
+
month_encoding:
|
|
241
|
+
rule_verbatim: "Where the registration mark is of the Standard Alphanumeric Format (Random) type, the first letter shall stand for the month in which the licence of the vehicle shall be renewed."
|
|
242
|
+
rule_source: "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02, First Schedule, final line; introduced by L.N. 195 of 2011 when it substituted the First Schedule"
|
|
243
|
+
rule_evidence: instrument-in-force
|
|
244
|
+
note: >-
|
|
245
|
+
THE MOST MISREPORTED FACT ABOUT MALTESE PLATES. The leading letter is a
|
|
246
|
+
CALENDAR code — the month the annual licence falls due — and is
|
|
247
|
+
routinely described as a regional code. It is not: Malta encodes no
|
|
248
|
+
geography in an ordinary mark at all (see region_encoding). Note the
|
|
249
|
+
consequence for a parse API: the leading letter is the ONE decodable
|
|
250
|
+
field of a Maltese standard mark, and what it decodes to is a renewal
|
|
251
|
+
month, which changes nothing about where or when the vehicle was
|
|
252
|
+
registered.
|
|
253
|
+
table_evidence: secondary-wikipedia
|
|
254
|
+
table_note: >-
|
|
255
|
+
THE RULE IS PRIMARY; THE MAPPING BELOW IS NOT. S.L. 368.02 states THAT
|
|
256
|
+
the first letter stands for the renewal month but does not publish WHICH
|
|
257
|
+
letter means which month — the assignment is presumably administrative.
|
|
258
|
+
The twelve rows below are therefore `secondary-wikipedia` and are the
|
|
259
|
+
only secondary data in this file. They are internally consistent
|
|
260
|
+
(A-L cover January-December, M-X repeat the cycle, Y and Z extend it to
|
|
261
|
+
January and February, exhausting all 26 letters exactly), which is
|
|
262
|
+
corroboration but not a source.
|
|
263
|
+
table_source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malta # revision 1365210379 of 2026-07-21T00:33:53Z, fetched as wikitext 2026-08-02. secondary-wikipedia"
|
|
264
|
+
months:
|
|
265
|
+
- { month: 1, name: January, letters: [A, M, Y] }
|
|
266
|
+
- { month: 2, name: February, letters: [B, N, Z] }
|
|
267
|
+
- { month: 3, name: March, letters: [C, O] }
|
|
268
|
+
- { month: 4, name: April, letters: [D, P] }
|
|
269
|
+
- { month: 5, name: May, letters: [E, Q] }
|
|
270
|
+
- { month: 6, name: June, letters: [F, R] }
|
|
271
|
+
- { month: 7, name: July, letters: [G, S] }
|
|
272
|
+
- { month: 8, name: August, letters: [H, T] }
|
|
273
|
+
- { month: 9, name: September, letters: [I, U] }
|
|
274
|
+
- { month: 10, name: October, letters: [J, V] }
|
|
275
|
+
- { month: 11, name: November, letters: [K, W] }
|
|
276
|
+
- { month: 12, name: December, letters: [L, X] }
|
|
277
|
+
design:
|
|
278
|
+
plate:
|
|
279
|
+
note: >-
|
|
280
|
+
NO PLATE DIMENSIONS EXIST IN MALTESE LAW — a sourced negative, not a
|
|
281
|
+
gap. The Second Schedule requires only that the plate be rectangular
|
|
282
|
+
and "correspond with either diagram No 1 or diagram No 2 shown below";
|
|
283
|
+
the diagrams are bitmaps showing specimen plates reading "MAL 777"
|
|
284
|
+
with no dimensional annotations. No overall size, no character height
|
|
285
|
+
and no stroke width appear anywhere. The 520 x 110 mm commonly quoted
|
|
286
|
+
for Malta is the European convention, not a Maltese requirement, and
|
|
287
|
+
is deliberately NOT recorded here as a fact.
|
|
288
|
+
material: "metal — Second Schedule, verbatim: 'The plate shall be made from metal material.'"
|
|
289
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
290
|
+
foreground: "#000000"
|
|
291
|
+
foreground_note: >-
|
|
292
|
+
Second Schedule, verbatim: "The registration mark, with the exception of
|
|
293
|
+
vintage vehicles and vehicles registered in terms of article 8(4) of the
|
|
294
|
+
Act, shall be formed of black characters and shall be exhibited on white
|
|
295
|
+
reflective material in such a way that the black characters will at all
|
|
296
|
+
times appear on a white background."
|
|
297
|
+
border: { color: "#000000", width: 5, unit: mm, note: "Second Schedule, verbatim: 'The periphery of the plate shall be marked all around by a black border having a stroke width of 5 millimetres.'" }
|
|
298
|
+
security: { watermark: true, note: "Second Schedule: 'There shall be a watermark in the space between the letters and the numbers.' The watermark occupies the printed gap — see format.separator_note" }
|
|
299
|
+
content_restriction: >-
|
|
300
|
+
Second Schedule, verbatim and with its own typo preserved: "The plate on
|
|
301
|
+
which a registration mark is exhibited shall not contain any words,
|
|
302
|
+
letters, numbers, emblems or other marks of any kind other THEN those
|
|
303
|
+
required under these regulations." [sic — "other then"]. So Malta
|
|
304
|
+
forbids dealer legends, national emblems and slogans on the plate by
|
|
305
|
+
express prohibition, which is a stronger position than most.
|
|
306
|
+
band:
|
|
307
|
+
side: left
|
|
308
|
+
color: "#003399"
|
|
309
|
+
hex_basis: observed
|
|
310
|
+
color_spec_munsell: "5, 9 pb 3,4/15,1"
|
|
311
|
+
content: eu-stars+M
|
|
312
|
+
h_min: 98
|
|
313
|
+
w: [40, 50]
|
|
314
|
+
unit: mm
|
|
315
|
+
note: >-
|
|
316
|
+
The best-specified object in Maltese plate law, and the only place it
|
|
317
|
+
gives geometry. Second Schedule, verbatim: "Colours: 1.
|
|
318
|
+
Retro-reflecting blue background (Munsell reference 5, 9 pb 3,4/15,1)
|
|
319
|
+
2. 12 retro-reflecting yellow stars 3. Retro-reflecting distinguishing
|
|
320
|
+
sign of Malta, of a white colour"; "The blue background shall be not
|
|
321
|
+
less than 98mm in height, with a width of not less than 40 mm and not
|
|
322
|
+
more than 50 mm"; "The centrepoints of the 12 stars shall form a
|
|
323
|
+
circle with a 15 mm radius and the straight forming the apexes of the
|
|
324
|
+
stars shall be 4 mm to 5 mm in length"; "The distinguishing sign of
|
|
325
|
+
Malta shall have a height of 20 mm and a stroke width of between 4 mm
|
|
326
|
+
and 5 mm, and shall appear underneath the circle of stars." Reduced
|
|
327
|
+
proportionally on two-line and motorcycle plates. NOTE the Munsell
|
|
328
|
+
reference: it is a colour-order-system notation, NOT an sRGB value and
|
|
329
|
+
NOT a CIE box, so it constrains a colour without yielding a hex — the
|
|
330
|
+
hex beside it stays `observed`, exactly as the Spanish CIE boxes do.
|
|
331
|
+
The distinguishing sign is the letter M, and it is WHITE by
|
|
332
|
+
specification rather than taking the ground colour — which is the
|
|
333
|
+
opposite of the Greek and Cypriot rule.
|
|
334
|
+
statutory_hook: "S.L. 368.02 reg. 32(2), verbatim: 'Besides the registration mark, the plate shall also bear the international distinguishing sign of Malta in accordance with Council Regulation (EC) No 2411/98 on the recognition in intra-Community traffic of the distinguishing signs of the Member States in which motor vehicles and their trailers are registered.'"
|
|
335
|
+
font:
|
|
336
|
+
name: "not named by any instrument"
|
|
337
|
+
note: >-
|
|
338
|
+
REFUTED SECONDARY CLAIM. Malta is widely said to mandate FE-Schrift.
|
|
339
|
+
No typeface is named anywhere in Maltese plate law — the entire Second
|
|
340
|
+
Schedule was read and its diagram pages rendered as images to check
|
|
341
|
+
for annotations. Unlike Cyprus, which at least publishes drawn
|
|
342
|
+
specimens, Malta publishes neither a name nor a dimensioned drawing.
|
|
343
|
+
The letterforms are therefore, on the face of the law, unconstrained.
|
|
344
|
+
PRD-PLATES §6 posture: the render layer picks a free face and records
|
|
345
|
+
the substitution, because there is no statutory drawing to derive from.
|
|
346
|
+
license: "n/a — nothing prescribed"
|
|
347
|
+
rear_differs: false
|
|
348
|
+
region_encoding: none
|
|
349
|
+
region_encoding_note: >-
|
|
350
|
+
NONE IN AN ORDINARY MARK — a sourced negative. Malta encodes no geography
|
|
351
|
+
in the standard series; the leading letter is a renewal MONTH (see
|
|
352
|
+
month_encoding), which is the fact most often misreported as a regional
|
|
353
|
+
code. The ONLY geographic encoding anywhere in Maltese plate law is the
|
|
354
|
+
taxi M/G suffix for Malta and Gozo (see mt-taxi-2010), and its lapsed
|
|
355
|
+
predecessor pair TY/WY.
|
|
356
|
+
sources:
|
|
357
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02, consolidated to 23-01-2026 (PDF: https://legislation.mt/getpdf/6980741263aaee247463a137): reg. 30 + First Schedule (the Standard Alphanumeric Format and the renewal-month rule); reg. 31 (letter blocks); reg. 32(2) (the EU distinguishing sign); reg. 34 + Second Schedule (plate specification, colours, border, watermark, band geometry). Accessed 2026-08-02"
|
|
358
|
+
- "https://legislation.mt/eli/ln/2004/114/eng # L.N. 114 of 2004, Vehicles Identification Plates Regulations — THE PERIOD START: 'These regulations shall come into force on the 9th March 2004', and the First Schedule's first published statement of the three-letter/three-digit format"
|
|
359
|
+
- "https://legislation.mt/eli/ln/2004/476/eng # L.N. 476 of 2004, in force 1-5-2004: introduced the EU band in its Second Schedule and revoked L.N. 114 of 2004; reg. 52 also deleted the plate rules from the 1994 Motor Vehicles Regulations"
|
|
360
|
+
- "https://legislation.mt/eli/ln/2009/198/eng # L.N. 198 of 2009: 'deemed to have come into force on the 1st January, 2009 save for sub-regulation (3) of regulation 6 which shall come into force on the 1st August, 2009'; reg. 45 revoked L.N. 476 of 2004. Carried the format and band forward unchanged"
|
|
361
|
+
- "https://legislation.mt/eli/cap/368/eng # Cap. 368, Motor Vehicles Registration and Licensing Act (Act X of 1994, in force 1-1-1994): art. 20 the regulation-making power"
|
|
362
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malta # secondary-wikipedia, ONE item only: the letter-to-month mapping table in month_encoding.months, which no instrument publishes. Revision 1365210379 of 2026-07-21T00:33:53Z"
|
|
363
|
+
notes: >-
|
|
364
|
+
THE CURRENT MALTESE SERIES. PERIOD START 9 MARCH 2004, the commencement of
|
|
365
|
+
L.N. 114 of 2004, which is the first instrument ever to prescribe a plate
|
|
366
|
+
FORMAT in Malta. A GRANULARITY NOTE THE SCHEMA FORCES AND THAT IS WORTH
|
|
367
|
+
STATING: the EU band did not arrive with that instrument but with L.N. 476
|
|
368
|
+
of 2004 on 1 MAY 2004, Malta's EU accession day — so there was a
|
|
369
|
+
seven-week window in which this exact format was issued WITHOUT the band.
|
|
370
|
+
That is a genuine design difference and under PRD-PLATES §2.3 it would
|
|
371
|
+
merit its own series, but `period` is modelled in INTEGER YEARS and both
|
|
372
|
+
dates fall in 2004, so the two are indistinguishable in this schema and
|
|
373
|
+
are recorded as one series with the sequence written into the sources
|
|
374
|
+
above. The three-letter/three-digit shape itself is older than 2004 —
|
|
375
|
+
administratively from about 1995 (see mt-standard-1995) — so 2004 dates
|
|
376
|
+
the LEGISLATION, not the look. NOTHING IN THE STRING DATES A MALTESE
|
|
377
|
+
PLATE: allocation is expressly random.
|
|
378
|
+
|
|
379
|
+
# =========================================================================
|
|
380
|
+
# TAXIS — the only geography in Maltese plate law, and a live conflict.
|
|
381
|
+
# =========================================================================
|
|
382
|
+
- id: mt-taxi-2010
|
|
383
|
+
class: taxi
|
|
384
|
+
categories: [car]
|
|
385
|
+
period: { start: 2010 }
|
|
386
|
+
period_evidence: enacted-commencement
|
|
387
|
+
matching: strict
|
|
388
|
+
format:
|
|
389
|
+
pattern: "TAXI 999 L"
|
|
390
|
+
regex: '\ATAXI \d{3} [A-Z]\z'
|
|
391
|
+
regex_strict: '\ATAXI \d{3} [GM]\z'
|
|
392
|
+
charset:
|
|
393
|
+
notes: "the suffix is M for Malta or G for Gozo and nothing else; regex_strict carries that closed pair, which `regex` cannot because the lint's generator emits all 26 letters for an L"
|
|
394
|
+
digits: "001 onwards; see progression for the three separate ranges"
|
|
395
|
+
progression: >-
|
|
396
|
+
S.L. 499.59 reg. 24 splits the numbering three ways, verbatim: taxis
|
|
397
|
+
already licensed in MALTA when the regulations commenced take "three
|
|
398
|
+
numbers from '001' to '200' followed by the letter 'M'"; taxis licensed
|
|
399
|
+
in GOZO take "three numbers commencing from '001' onwards followed by
|
|
400
|
+
the letter 'G'"; and taxis granted a NEW Malta licence after
|
|
401
|
+
commencement take "three numbers commencing from '201' onwards followed
|
|
402
|
+
by the letter 'M'". So on the Malta side the number band 001-200 versus
|
|
403
|
+
201+ separates pre- from post-2010 licences, which is a genuine age
|
|
404
|
+
signal — the only one in the Maltese system.
|
|
405
|
+
design:
|
|
406
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
407
|
+
foreground: "#000000"
|
|
408
|
+
note: >-
|
|
409
|
+
No distinct taxi PLATE colour is prescribed. The Second Schedule's
|
|
410
|
+
black-on-white rule excepts only vintage and art. 8(4) vehicles, so
|
|
411
|
+
taxis take the ordinary colours. The red/black distinction that exists
|
|
412
|
+
for Maltese taxis is a DOOR MARKING, not a plate: S.L. 499.59 reg. 24(5)
|
|
413
|
+
requires the progressive number "painted by the licence holder in black
|
|
414
|
+
on a white background in respect of taxis licensed to be used only in
|
|
415
|
+
Malta and in red on a white background in respect of taxis licensed to
|
|
416
|
+
be used only in Gozo", 75 mm high and not more than 60 mm wide. Recorded
|
|
417
|
+
here precisely so a render layer does not colour the plate.
|
|
418
|
+
border: { color: "#000000", width: 5, unit: mm }
|
|
419
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
420
|
+
region_encoding: inline
|
|
421
|
+
region_encoding_mechanism: >-
|
|
422
|
+
THE ONLY GEOGRAPHIC ENCODING IN MALTESE PLATE LAW. Suffix M = the island
|
|
423
|
+
of Malta; suffix G = Gozo. Two rows, so inline rather than a decode file.
|
|
424
|
+
Its lapsed predecessor was a PREFIX pair on the ordinary format: [x]TY for
|
|
425
|
+
taxicars in Malta and [x]WY for taxicars in Gozo (L.N. 476 of 2004 reg.
|
|
426
|
+
33(1)(vii)-(viii), carried into L.N. 198 of 2009 reg. 31(1)(vii)-(viii)),
|
|
427
|
+
replaced by TAXI M / TAXI G by L.N. 110 of 2011.
|
|
428
|
+
region_codes:
|
|
429
|
+
- { code: M, area: "Malta (island)" }
|
|
430
|
+
- { code: G, area: "Gozo" }
|
|
431
|
+
sources:
|
|
432
|
+
- "https://legislation.mt/eli/sl/499.59/eng # S.L. 499.59, Taxi Services Regulations (L.N. 369 of 2010), reg. 24(1)-(3): the TAXI + three digits + M/G form and the three numbering bands; reg. 24(5) the door-marking rule. Commencement stated on the consolidation: 1st November 2010; 1st May 2011; 1st November 2011. PDF: https://legislation.mt/getpdf/6131f456a77e7700c82a9fb7"
|
|
433
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 reg. 31(1)(v)-(vi) and its First Schedule, which defers to the Taxi Services Regulations — 'Composed as prescribed in the Taxi Services Regulations. (S.L. 499.59)' — and sets the taxi plate fee at EUR 60 per pair"
|
|
434
|
+
notes: >-
|
|
435
|
+
A LIVE CONFLICT BETWEEN TWO INSTRUMENTS, RECORDED AND RESOLVED RATHER THAN
|
|
436
|
+
AVERAGED. S.L. 368.02 reg. 31(1)(v) describes the mark as "the letters
|
|
437
|
+
TAXI M followed by three numerical figures" — letter BEFORE the digits.
|
|
438
|
+
S.L. 499.59 reg. 24(1) describes it as "TAXI" followed by three numbers
|
|
439
|
+
"followed by the letter 'M'" — letter AFTER the digits. They cannot both
|
|
440
|
+
be right. The resolution is internal to the instruments: the First
|
|
441
|
+
Schedule to S.L. 368.02 expressly defers the taxi mark's composition to
|
|
442
|
+
S.L. 499.59, so the Taxi Services Regulations govern and the real printed
|
|
443
|
+
form is TAXI 123 M. This file follows that, and records the conflict so a
|
|
444
|
+
verifier meeting reg. 31(1)(v) does not think the dataset is wrong.
|
|
445
|
+
PERIOD: 2010, the commencement of S.L. 499.59; the regulations carry three
|
|
446
|
+
commencement dates (1-11-2010, 1-5-2011, 1-11-2011) for different Parts
|
|
447
|
+
and the plate provision is not separately dated among them, so the
|
|
448
|
+
earliest is taken and the ambiguity is recorded here.
|
|
449
|
+
|
|
450
|
+
# =========================================================================
|
|
451
|
+
# THE HIRE-OR-REWARD FAMILY — one recall-only union over fifteen blocks.
|
|
452
|
+
# =========================================================================
|
|
453
|
+
- id: mt-hire-reward-2009
|
|
454
|
+
class: taxi
|
|
455
|
+
categories: [bus, coach, van, truck, car]
|
|
456
|
+
period: { start: 2009 }
|
|
457
|
+
period_evidence: enacted-commencement
|
|
458
|
+
matching: recall-only
|
|
459
|
+
format:
|
|
460
|
+
pattern: "LLLL 999"
|
|
461
|
+
regex: '\A[A-Z]{3,4} \d{3}\z'
|
|
462
|
+
pattern_note: >-
|
|
463
|
+
A UNION OVER THE reg. 31(1) BLOCKS, hence recall-only. The family spans
|
|
464
|
+
three-letter fixed blocks (HRS, TEY, MHY, CSH) and four-letter
|
|
465
|
+
leading-letter-plus-block marks ([x]BUS, [x]PY, [x]LY, [x]XY, [x]QZ,
|
|
466
|
+
[x]HQ, [x]OY, [x]RY) plus the four-letter CABS, so the regex accepts
|
|
467
|
+
three or four letters and three digits. A match says only "this string
|
|
468
|
+
has the shape of a Maltese hire-or-reward mark" — it cannot tell you
|
|
469
|
+
which block, and it will also match plenty of strings that are not in
|
|
470
|
+
any block. The blocks themselves are enumerated, verbatim and with their
|
|
471
|
+
meanings, in the file-level letter_blocks section; that table is the
|
|
472
|
+
real content and this series is the matcher for it. Taxis are excluded
|
|
473
|
+
here and modelled separately because their form differs (mt-taxi-2010).
|
|
474
|
+
design:
|
|
475
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
476
|
+
foreground: "#000000"
|
|
477
|
+
border: { color: "#000000", width: 5, unit: mm }
|
|
478
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
479
|
+
note: "no distinct colour is prescribed for any hire-or-reward class — the Second Schedule's black-on-white rule excepts only vintage and art. 8(4) vehicles"
|
|
480
|
+
region_encoding: none
|
|
481
|
+
sources:
|
|
482
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 reg. 31(1), every block quoted verbatim in letter_blocks.hire_or_reward"
|
|
483
|
+
- "https://legislation.mt/eli/ln/2011/110/eng # L.N. 110 of 2011 s.6: the 2011 rewrite (CY->PY, MY->LY, SY->XY, VY->GV, GY deleted, TY/WY->TAXI M/TAXI G, CABS added)"
|
|
484
|
+
- "https://legislation.mt/eli/ln/2018/139/eng # L.N. 139 of 2018 (Government Gazette 19,984, 27-04-2018) s.4: BY->BUS, and the addition of TEY, MHY and CSH"
|
|
485
|
+
notes: >-
|
|
486
|
+
MALTA'S PUBLIC-TRANSPORT AND HIRE MARKS, as one recall-only series over a
|
|
487
|
+
published block list. CLASS CAVEAT, and it is now the THIRD time this wave
|
|
488
|
+
has hit it: `_meta/classes.yml` has no class for "public service /
|
|
489
|
+
hire-or-reward", so `taxi` is recorded as the nearest member and badly
|
|
490
|
+
understates a family that is mostly buses, coaches, hearses, trolleys and
|
|
491
|
+
car-sharing vehicles. Greece's Δ.Χ. and Cyprus's yellow class have exactly
|
|
492
|
+
the same problem. A `public-service` class is flagged as a vocabulary gap
|
|
493
|
+
from all three files. PERIOD: 2009, the commencement of the instrument
|
|
494
|
+
that carries the current reg. 31; individual blocks arrived and lapsed at
|
|
495
|
+
dated points recorded in letter_blocks, and the 2004-2009 predecessor list
|
|
496
|
+
is recorded there too under `lapsed` rather than authored as its own
|
|
497
|
+
series, because its plates are on the same base design.
|
|
498
|
+
|
|
499
|
+
# =========================================================================
|
|
500
|
+
# OFFICIAL SERIES — GVN/GVH/GVP/GVA, and the N1 [x]GV trap.
|
|
501
|
+
# =========================================================================
|
|
502
|
+
- id: mt-government-2009
|
|
503
|
+
class: government
|
|
504
|
+
categories: [car, van, truck, bus]
|
|
505
|
+
period: { start: 2009 }
|
|
506
|
+
period_evidence: enacted-commencement
|
|
507
|
+
matching: strict
|
|
508
|
+
format:
|
|
509
|
+
pattern: "GVL 999"
|
|
510
|
+
regex: '\AGV[A-Z] \d{3}\z'
|
|
511
|
+
regex_strict: '\AGV[AHNP] \d{3}\z'
|
|
512
|
+
charset:
|
|
513
|
+
notes: >-
|
|
514
|
+
The four official three-letter blocks of reg. 31(2)-(4): GVN
|
|
515
|
+
(Government Department, other vehicles), GVH (Government Department,
|
|
516
|
+
HEAVY vehicles), GVP (Police Department), GVA (Armed Forces of Malta).
|
|
517
|
+
regex_strict carries exactly those four; `regex` is the GV+any-letter
|
|
518
|
+
shape, which is deliberately looser because reg. 31(7) puts ordinary
|
|
519
|
+
N1 small vans on a [letter]GV mark and a consumer needs to see the
|
|
520
|
+
collision rather than have it hidden.
|
|
521
|
+
design:
|
|
522
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
523
|
+
foreground: "#000000"
|
|
524
|
+
border: { color: "#000000", width: 5, unit: mm }
|
|
525
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
526
|
+
note: "no distinct colour: Malta marks officialdom by letter block only, unlike Cyprus, which gives Ministry vehicles an orange plate"
|
|
527
|
+
region_encoding: none
|
|
528
|
+
sources:
|
|
529
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 reg. 31(2) (GVH heavy / GVN other), reg. 31(3) (GVP police), reg. 31(4) (GVA Armed Forces), all quoted verbatim in letter_blocks.official; reg. 31(7) the [x]GV N1 rule"
|
|
530
|
+
notes: >-
|
|
531
|
+
MALTESE OFFICIAL MARKS. TWO TRAPS, both sourced. FIRST: GVH is GOVERNMENT
|
|
532
|
+
HEAVY VEHICLES, not the Department of Health — the "health" reading is a
|
|
533
|
+
persistent secondary error and there is no health block at all. SECOND,
|
|
534
|
+
and subtler: reg. 31(7) allots "a letter followed by the letters GV and
|
|
535
|
+
three numbers" to N1 vehicles with not more than two seats, so an ordinary
|
|
536
|
+
small van carries a mark like XGV 123 that LOOKS official and is not. The
|
|
537
|
+
discriminator is position — the government blocks are three letters
|
|
538
|
+
beginning GV (GVN 123), the van rule is a letter then GV (XGV 123) — and
|
|
539
|
+
it is why this series' `regex` is written GV + one letter rather than as
|
|
540
|
+
an alternation: a parse API must be able to see both readings of a
|
|
541
|
+
GV-containing Maltese mark and rank them, not have one silently hidden.
|
|
542
|
+
Police and the Armed Forces are inside this scheme, unlike Cyprus, whose
|
|
543
|
+
Καν. 6(21)(β) expressly excludes both from its government plate.
|
|
544
|
+
|
|
545
|
+
- id: mt-diplomatic-2009
|
|
546
|
+
class: diplomatic
|
|
547
|
+
categories: [car, van]
|
|
548
|
+
period: { start: 2009 }
|
|
549
|
+
period_evidence: enacted-commencement
|
|
550
|
+
matching: strict
|
|
551
|
+
format:
|
|
552
|
+
pattern: "CDL 999"
|
|
553
|
+
regex: '\ACD[A-Z] \d{3}\z'
|
|
554
|
+
charset: { notes: "reg. 31(5), verbatim: 'the letters CD followed by another letter and three numbers'. The trailing letter is unconstrained, so `regex` is already the sourced grammar and no strict twin is needed" }
|
|
555
|
+
design:
|
|
556
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
557
|
+
foreground: "#000000"
|
|
558
|
+
border: { color: "#000000", width: 5, unit: mm }
|
|
559
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
560
|
+
region_encoding: none
|
|
561
|
+
sources:
|
|
562
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 reg. 31(5)"
|
|
563
|
+
notes: >-
|
|
564
|
+
DIPLOMATIC REPRESENTATIONS IN MALTA. Note that Malta, unlike Cyprus and
|
|
565
|
+
Spain, gives diplomatic vehicles NO distinct colour — the mark is the only
|
|
566
|
+
signal. No per-mission decode is published: the trailing letter is not
|
|
567
|
+
stated to encode the mission, and this file makes no such claim.
|
|
568
|
+
|
|
569
|
+
- id: mt-diplomatic-staff-2009
|
|
570
|
+
class: consular
|
|
571
|
+
categories: [car, van]
|
|
572
|
+
period: { start: 2009 }
|
|
573
|
+
period_evidence: enacted-commencement
|
|
574
|
+
matching: strict
|
|
575
|
+
format:
|
|
576
|
+
pattern: "DMS 999"
|
|
577
|
+
regex: '\ADMS \d{3}\z'
|
|
578
|
+
charset: { notes: "reg. 31(6), verbatim: 'the letters DMS followed by three numbers'" }
|
|
579
|
+
design:
|
|
580
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
581
|
+
foreground: "#000000"
|
|
582
|
+
border: { color: "#000000", width: 5, unit: mm }
|
|
583
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
584
|
+
region_encoding: none
|
|
585
|
+
sources:
|
|
586
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 reg. 31(6)"
|
|
587
|
+
notes: >-
|
|
588
|
+
STAFF OF DIPLOMATIC MISSIONS — a separate block from the CD mark of the
|
|
589
|
+
missions themselves, which is a distinction many jurisdictions do not
|
|
590
|
+
draw. CLASS CAVEAT: recorded as `consular` because the controlled
|
|
591
|
+
vocabulary distinguishes only diplomatic from consular and DMS is neither
|
|
592
|
+
exactly — it is mission STAFF rather than a consular post. Introduced with
|
|
593
|
+
L.N. 198 of 2009; it does not appear in the 2004 list.
|
|
594
|
+
|
|
595
|
+
# =========================================================================
|
|
596
|
+
# VINTAGE — two instrument-dated designs, and the 2017 folklore corrected.
|
|
597
|
+
# =========================================================================
|
|
598
|
+
- id: mt-vintage-green-2015
|
|
599
|
+
class: historic
|
|
600
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
601
|
+
period: { start: 2015, end: 2018 }
|
|
602
|
+
period_evidence: instrument-dated-both-ends
|
|
603
|
+
matching: strict
|
|
604
|
+
format:
|
|
605
|
+
pattern: "LLL 999"
|
|
606
|
+
regex: '\A[A-Z]{3} \d{3}\z'
|
|
607
|
+
charset: { notes: "the ordinary Standard Alphanumeric mark; vintage status changes the plate's COLOURS, not its grammar" }
|
|
608
|
+
design:
|
|
609
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
610
|
+
foreground: "#007A33"
|
|
611
|
+
foreground_note: "L.N. 178 of 2015 s.17, verbatim: 'The plate on which the registration mark of a vintage vehicle is exhibited shall carry green characters.' The ground is not restated and remains the Second Schedule's white."
|
|
612
|
+
border: { color: "#000000", width: 5, unit: mm }
|
|
613
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
614
|
+
region_encoding: none
|
|
615
|
+
sources:
|
|
616
|
+
- "https://legislation.mt/eli/ln/2015/178/eng # L.N. 178 of 2015 (Government Gazette 19,436, 05-06-2015) s.17: the GREEN characters rule; s.16 set the changeover fee at EUR 17.50 per plate 'for the replacement of vintage vehicle plates carrying black characters with new plates carrying green characters' — which also establishes that vintage plates were ORDINARY BLACK ON WHITE before 2015"
|
|
617
|
+
- "https://legislation.mt/eli/ln/2018/139/eng # L.N. 139 of 2018 s.7(b): THE END — substitutes the green rule with the silver-on-black rule"
|
|
618
|
+
- "https://legislation.mt/eli/cap/368/eng # Cap. 368 art. 25 (added by Act XIII of 2015): the vintage regime — 30 years or older from date of manufacture, a vintage vehicle classification committee, and 'Vintage vehicles which are older than fifty years shall be exempt from the payment of registration tax when they are registered for the first time in Malta'"
|
|
619
|
+
notes: >-
|
|
620
|
+
THE GREEN VINTAGE PLATE, 2015-2018 — a design that most secondary accounts
|
|
621
|
+
of Malta omit entirely, jumping straight from black-on-white to
|
|
622
|
+
silver-on-black and dating the latter to 2017. Both halves of that are
|
|
623
|
+
wrong and both are corrected from the instruments: the intermediate design
|
|
624
|
+
existed, it was green characters, and the silver-on-black change is 2018.
|
|
625
|
+
Note also what L.N. 178 of 2015 s.16 incidentally proves by prescribing a
|
|
626
|
+
swap fee from BLACK to GREEN plates: before June 2015 there was no special
|
|
627
|
+
vintage plate at all. This series is instrument-dated at both ends, which
|
|
628
|
+
is why it is one of the few in this wave carrying
|
|
629
|
+
`instrument-dated-both-ends`.
|
|
630
|
+
|
|
631
|
+
- id: mt-vintage-silver-2018
|
|
632
|
+
class: historic
|
|
633
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
634
|
+
period: { start: 2018 }
|
|
635
|
+
period_evidence: enacted-commencement
|
|
636
|
+
matching: strict
|
|
637
|
+
format:
|
|
638
|
+
pattern: "LLL 999"
|
|
639
|
+
regex: '\A[A-Z]{3} \d{3}\z'
|
|
640
|
+
charset: { notes: "the ordinary Standard Alphanumeric mark; only the colours differ" }
|
|
641
|
+
design:
|
|
642
|
+
background: { color: "#000000", finish: non-retroreflective, hex_basis: observed }
|
|
643
|
+
foreground: "#C0C0C0"
|
|
644
|
+
foreground_note: >-
|
|
645
|
+
L.N. 139 of 2018 s.7(b), verbatim, substituting the 2015 wording: 'The
|
|
646
|
+
plate on which the registration mark of a vintage vehicle is exhibited
|
|
647
|
+
shall carry silver characters on a black background.' This is the one
|
|
648
|
+
Maltese plate whose GROUND colour changes, and the Second Schedule
|
|
649
|
+
confirms it: the vintage and art. 8(4) plates keep 'the same dimensions
|
|
650
|
+
and composition of all other registration plates' except for 'the colour
|
|
651
|
+
of the characters, the periphery of the plate and, in the case of
|
|
652
|
+
vintage vehicles, the colour of the plate'.
|
|
653
|
+
border: { color: "#C0C0C0", width: 5, unit: mm, note: "the Second Schedule excepts 'the periphery of the plate' from the ordinary rule for these classes, so the border is not black here; its colour is not separately stated and silver is inferred from the character colour — recorded as an inference, not a citation" }
|
|
654
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
655
|
+
region_encoding: none
|
|
656
|
+
sources:
|
|
657
|
+
- "https://legislation.mt/eli/ln/2018/139/eng # L.N. 139 of 2018 (Government Gazette 19,984, 27-04-2018) s.7(b): the silver-on-black rule; s.6 updated the swap-fee wording from black->green to green->silver"
|
|
658
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 Second Schedule as consolidated (carries the silver-on-black text) and reg. 6D(7), added by L.N. 178 of 2015 and substituted by L.N. 160 of 2025: 'The registration mark allotted by the Authority to vehicles which are registered as vintage vehicles in accordance with article 25 of the Act is to be displayed on a vehicle registration plate having such specifications as established in the Second Schedule'"
|
|
659
|
+
- "https://legislation.mt/eli/cap/368/eng # Cap. 368 art. 25 (Act XIII of 2015, amended by Act XVIII of 2021 and Act IX of 2025): the 30-year threshold and the 50-year tax exemption"
|
|
660
|
+
notes: >-
|
|
661
|
+
THE CURRENT MALTESE VINTAGE PLATE — silver on black, from L.N. 139 of 2018
|
|
662
|
+
(gazetted 27-04-2018), NOT 2017 as commonly stated. Eligibility is a
|
|
663
|
+
ROLLING 30-year rule from date of manufacture under Cap. 368 art. 25, with
|
|
664
|
+
a classification committee — which is worth contrasting with Cyprus, whose
|
|
665
|
+
black historic plate is keyed to a FIXED calendar date (registration on or
|
|
666
|
+
before 31-12-1974) and whose eligible population therefore shrinks every
|
|
667
|
+
year while Malta's grows.
|
|
668
|
+
|
|
669
|
+
# =========================================================================
|
|
670
|
+
# THE WEEKEND / HIGH-EMISSION PLATE — a genuine `seasonal` class.
|
|
671
|
+
# =========================================================================
|
|
672
|
+
- id: mt-weekend-2015
|
|
673
|
+
class: seasonal
|
|
674
|
+
categories: [car, motorcycle]
|
|
675
|
+
period: { start: 2015 }
|
|
676
|
+
period_evidence: enacted-commencement
|
|
677
|
+
matching: strict
|
|
678
|
+
format:
|
|
679
|
+
pattern: "LLL 999"
|
|
680
|
+
regex: '\A[A-Z]{3} \d{3}\z'
|
|
681
|
+
charset: { notes: "the ordinary Standard Alphanumeric mark; the restriction is marked by character colour alone" }
|
|
682
|
+
design:
|
|
683
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
684
|
+
foreground: "#CE1126"
|
|
685
|
+
foreground_note: "Second Schedule, verbatim: 'The plate on which the registration mark of a vehicle registered for use on the road in Malta solely and exclusively on Saturdays, Sundays, national holidays and other public holidays in terms of article 8(4) of the Act shall carry red characters.'"
|
|
686
|
+
border: { color: "#CE1126", width: 5, unit: mm, note: "as with the vintage plate, the Second Schedule excepts 'the periphery of the plate' for this class; the colour is inferred from the characters and is not separately stated" }
|
|
687
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
688
|
+
region_encoding: none
|
|
689
|
+
sources:
|
|
690
|
+
- "https://legislation.mt/eli/cap/368/eng # Cap. 368 art. 8(4): the restricted-use registration category"
|
|
691
|
+
- "https://legislation.mt/eli/ln/2015/178/eng # L.N. 178 of 2015: added S.L. 368.02 reg. 6C and the Second Schedule's red-characters rule"
|
|
692
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 reg. 6C as amended by L.N. 265 of 2022 and L.N. 21 of 2026: M1 vehicles at or above 200 g/km CO2 NEDC / 220 g/km WLTP, and motorcycles of 801cc and above"
|
|
693
|
+
notes: >-
|
|
694
|
+
A RESTRICTED-USE PLATE MARKED ONLY BY THE COLOUR OF ITS CHARACTERS, and a
|
|
695
|
+
genuinely good fit for the `seasonal` class in _meta/classes.yml — which
|
|
696
|
+
was written for German Saisonkennzeichen but describes this exactly: a
|
|
697
|
+
validity-window plate. Malta's window is weekly rather than annual. The
|
|
698
|
+
regime is an EMISSIONS measure: reg. 6C confines it to M1 vehicles at or
|
|
699
|
+
above 200 g/km CO2 (NEDC) or 220 g/km (WLTP), and to motorcycles of 801cc
|
|
700
|
+
and above. A DISCREPANCY BETWEEN ACT AND REGULATION, recorded not
|
|
701
|
+
reconciled: Cap. 368 art. 8(4) states the window as including "Fridays as
|
|
702
|
+
from 18.00 onwards", while reg. 6C says "Fridays" and separately prohibits
|
|
703
|
+
parking "on Friday before 18:00hrs". Both texts are in force; a consumer
|
|
704
|
+
needing the exact window must read both.
|
|
705
|
+
|
|
706
|
+
# =========================================================================
|
|
707
|
+
# PERSONALISED AND SPECIAL FORMATS — the outer legal bound, recall-only.
|
|
708
|
+
# =========================================================================
|
|
709
|
+
- id: mt-personalised-2011
|
|
710
|
+
class: personalized
|
|
711
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
712
|
+
period: { start: 2011 }
|
|
713
|
+
period_evidence: enacted-commencement
|
|
714
|
+
matching: recall-only
|
|
715
|
+
format:
|
|
716
|
+
pattern: "LLL999"
|
|
717
|
+
regex: '\A[A-Z0-9]{1,9}\z'
|
|
718
|
+
pattern_note: >-
|
|
719
|
+
THE OUTER LEGAL BOUND, hence recall-only, and it is genuinely this wide.
|
|
720
|
+
S.L. 368.02 reg. 30(2), verbatim: "The registration mark may take any of
|
|
721
|
+
the special numeric, special alphabetical or special alphanumeric
|
|
722
|
+
formats specified in the First Schedule and can be composed of up to a
|
|
723
|
+
MAXIMUM OF NINE CHARACTERS." The First Schedule defines them: Special
|
|
724
|
+
Numeric Format, "Composed solely of any Arabic numeral"; Special
|
|
725
|
+
Alphabetical Format, "Composed of any character of the Roman Alphabet";
|
|
726
|
+
Special Numeric and Alphabetical, "Composed of a mixture of numeric and
|
|
727
|
+
alphabetical". So one to nine characters, letters and/or digits, in any
|
|
728
|
+
arrangement. A match here is a shape hit and nothing more — this regex
|
|
729
|
+
subsumes almost every other Maltese series and must never be used to
|
|
730
|
+
assert that a string IS a Maltese plate. `pattern` shows a
|
|
731
|
+
representative six-character form only.
|
|
732
|
+
progression: "none — owner-chosen"
|
|
733
|
+
design:
|
|
734
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
735
|
+
foreground: "#000000"
|
|
736
|
+
border: { color: "#000000", width: 5, unit: mm }
|
|
737
|
+
band: { side: left, color: "#003399", hex_basis: observed, content: eu-stars+M }
|
|
738
|
+
region_encoding: none
|
|
739
|
+
region_encoding_note: "none, and note that a personalised mark DEFEATS the renewal-month rule of the standard series, since the First Schedule ties that rule to the Standard Alphanumeric Format (Random) type only"
|
|
740
|
+
sources:
|
|
741
|
+
- "https://legislation.mt/eli/sl/368.2/eng # S.L. 368.02 reg. 30(2)-(4) and the First Schedule (substituted by L.N. 195 of 2011, amended by L.N. 110 of 2011, 178 of 2015 and 139 of 2018): the special formats, the nine-character maximum, the fees, and the transfer rules"
|
|
742
|
+
- "https://legislation.mt/eli/ln/2011/195/eng # L.N. 195 of 2011: substituted the First Schedule wholesale — the instrument that dates this series"
|
|
743
|
+
notes: >-
|
|
744
|
+
MALTESE SPECIAL AND PERSONALISED MARKS. Fees, from the First Schedule and
|
|
745
|
+
recorded because they are the clearest evidence of the tiering: Standard
|
|
746
|
+
Alphanumeric (Random) EUR 70 per pair; Standard Alphanumeric
|
|
747
|
+
(Personalised), "where the choice of the characters and numerals shall lie
|
|
748
|
+
with the person requesting the Numbers", EUR 200 per pair; each of the
|
|
749
|
+
three Special formats EUR 1,500 per pair; duplicate plates EUR 35 each.
|
|
750
|
+
TRANSFERABILITY IS THE INTERESTING RULE, reg. 30(4): random marks are NOT
|
|
751
|
+
transferable independently of the vehicle, PERSONALISED marks ARE, and
|
|
752
|
+
other marks transfer on payment of EUR 466 with exemptions for transfers
|
|
753
|
+
causa mortis, between spouses, ascendants or direct collaterals, and
|
|
754
|
+
between a company and its director or majority shareholder. A RESIDUAL
|
|
755
|
+
GAP, recorded: reg. 30(3) provides that marks "shall be made available to
|
|
756
|
+
the public in such manner as the Authority may from time to time establish
|
|
757
|
+
by means of a NOTICE IN THE GAZETTE", so which specific marks are released
|
|
758
|
+
is administrative and is not on legislation.mt. The nine-character maximum
|
|
759
|
+
also means Malta is the one jurisdiction in this wave whose statutory
|
|
760
|
+
bound is materially wider than its ordinary series, which is exactly what
|
|
761
|
+
`regex_statutory` exists for elsewhere — here the width is so great that a
|
|
762
|
+
separate recall-only series is the honest encoding rather than a twin on
|
|
763
|
+
mt-standard-2004.
|
|
764
|
+
|
|
765
|
+
# =========================================================================
|
|
766
|
+
# THE PRE-LEGISLATION SERIES — administrative, hence recall-only.
|
|
767
|
+
# =========================================================================
|
|
768
|
+
- id: mt-standard-1995
|
|
769
|
+
class: standard
|
|
770
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
771
|
+
period: { start: 1995, end: 2004 }
|
|
772
|
+
period_evidence: secondary-dated
|
|
773
|
+
matching: recall-only
|
|
774
|
+
format:
|
|
775
|
+
pattern: "LLL 999"
|
|
776
|
+
regex: '\A[A-Z]{3} ?\d{3}\z'
|
|
777
|
+
pattern_note: "recall-only because no instrument prescribed a format before 9-3-2004; see the file header. The optional gap reflects that no separator was prescribed either"
|
|
778
|
+
design:
|
|
779
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
780
|
+
foreground: "#000000"
|
|
781
|
+
band: { side: none, note: "the EU band arrives with L.N. 476 of 2004 on 1-5-2004; it cannot have been prescribed for this series" }
|
|
782
|
+
region_encoding: none
|
|
783
|
+
sources:
|
|
784
|
+
- "https://legislation.mt/eli/ln/1994/128/eng # L.N. 128 of 1994 (Motor Vehicles Regulations 1994, S.L. 65.11) regs. 31-32 — THE SOURCED NEGATIVE: the mark and all character dimensions are 'determined from time to time by the Commissioner of Police on the advice of the Traffic Control Board'. No format is prescribed. PDF: https://legislation.mt/getpdf/60225bddbc8272018c134581"
|
|
785
|
+
- "https://legislation.mt/eli/ln/2004/114/eng # L.N. 114 of 2004 — the END of the unlegislated era: the first published format, in force 9-3-2004"
|
|
786
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malta # secondary-wikipedia: the c.1995 introduction of the three-letter/three-digit system. Revision 1365210379 of 2026-07-21T00:33:53Z. NO primary exists for this boundary"
|
|
787
|
+
notes: >-
|
|
788
|
+
THE THREE-LETTER FORMAT BEFORE IT WAS LEGISLATED. Same shape as
|
|
789
|
+
mt-standard-2004 and no instrument behind it: under L.N. 128 of 1994 the
|
|
790
|
+
Commissioner of Police set the format administratively. The 1995 start is
|
|
791
|
+
a secondary date with no gazette reference and should be treated as
|
|
792
|
+
observational. The end, by contrast, IS instrument-dated — 9 March 2004,
|
|
793
|
+
when L.N. 114 of 2004 first prescribed the format in law — and the two
|
|
794
|
+
entries overlap in 2004 for that reason, with distinct notes. A consumer
|
|
795
|
+
cannot distinguish a 1998 plate from a 2005 one by its STRING; the
|
|
796
|
+
discriminator is the EU band on the physical plate.
|
|
797
|
+
|
|
798
|
+
- id: mt-standard-1979
|
|
799
|
+
class: standard
|
|
800
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
801
|
+
period: { start: 1979, end: 1995 }
|
|
802
|
+
period_evidence: secondary-dated
|
|
803
|
+
matching: recall-only
|
|
804
|
+
format:
|
|
805
|
+
pattern: "L-9999"
|
|
806
|
+
regex: '\A[A-Z][- ]?\d{1,4}\z'
|
|
807
|
+
pattern_note: "one letter and up to four digits, reported as printed with a hyphen. recall-only: no instrument, no letter set, no digit-count rule. The separator class accepts a hyphen or a space and the quantifier makes it optional, because nothing prescribes it"
|
|
808
|
+
design:
|
|
809
|
+
background: { color: "#FFFFFF", hex_basis: observed }
|
|
810
|
+
foreground: "#000000"
|
|
811
|
+
band: { side: none }
|
|
812
|
+
note: "secondary sources describe background colours varying by use in this era — white for private and diplomatic, yellow for rental, red for taxi and bus. NO INSTRUMENT SUPPORTS THIS: the colours were searched for across Cap. 368, S.L. 368.02, L.N. 198/2009, L.N. 476/2004 and L.N. 128/1994 with zero hits. Recorded as an unsourced secondary description and NOT as a design claim; the hexes above are the private-vehicle case only"
|
|
813
|
+
region_encoding: none
|
|
814
|
+
sources:
|
|
815
|
+
- "https://legislation.mt/eli/ln/1994/128/eng # L.N. 128 of 1994 regs. 31-32 — the delegating provision that explains why no format instrument exists for this era"
|
|
816
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malta # secondary-wikipedia: the 1979-1995 one-letter/four-digit format written with a hyphen, and the by-use colour scheme recorded above as unsourced. Revision 1365210379 of 2026-07-21T00:33:53Z"
|
|
817
|
+
notes: >-
|
|
818
|
+
THE LETTER-AND-FOUR-DIGITS ERA. Entirely secondary and entirely
|
|
819
|
+
administrative. Recorded because the shape is distinctive and a parse API
|
|
820
|
+
benefits from recognising it, not because any of its boundaries are
|
|
821
|
+
established. Secondary accounts also attach class meanings to the leading
|
|
822
|
+
letter in this era (X for rental, Y for taxis and buses, P and Q for
|
|
823
|
+
scooters and motorcycles); those are recorded here as reported and are
|
|
824
|
+
NOT authored into the letter_blocks table, which contains only blocks
|
|
825
|
+
quoted from instruments.
|
|
826
|
+
|
|
827
|
+
- id: mt-standard-1952
|
|
828
|
+
class: standard
|
|
829
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
830
|
+
period: { start: 1952, end: 1979 }
|
|
831
|
+
period_evidence: secondary-dated
|
|
832
|
+
matching: recall-only
|
|
833
|
+
format:
|
|
834
|
+
pattern: "99999"
|
|
835
|
+
regex: '\A\d{1,5}\z'
|
|
836
|
+
pattern_note: "purely numeric, up to five digits. recall-only and deliberately wide: no instrument, and the number certainly grew in width over the era rather than being fixed at five"
|
|
837
|
+
design:
|
|
838
|
+
background: { color: "#000000", hex_basis: observed }
|
|
839
|
+
foreground: "#FFFFFF"
|
|
840
|
+
band: { side: none }
|
|
841
|
+
note: "secondary sources describe a black ground for private vehicles in this era, with yellow for rental and red for taxi and bus. Unsourced — see mt-standard-1979.design.note; the hexes record the private case only and are `observed` in the weakest sense"
|
|
842
|
+
region_encoding: none
|
|
843
|
+
sources:
|
|
844
|
+
- "https://legislation.mt/eli/ln/1994/128/eng # L.N. 128 of 1994 — repealed the Motor Vehicles Regulations 1948 that governed the start of this era, and itself prescribed no format"
|
|
845
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malta # secondary-wikipedia: the five-digit numeric era, c.1952-1979. Revision 1365210379 of 2026-07-21T00:33:53Z"
|
|
846
|
+
notes: >-
|
|
847
|
+
THE NUMERIC ERA. The weakest-evidenced series in this file and marked as
|
|
848
|
+
such at every field: no instrument, no dated boundary, no sourced colour.
|
|
849
|
+
It is authored rather than omitted because a bare numeric string is
|
|
850
|
+
otherwise unattributable and a parse API asking "could this be Maltese?"
|
|
851
|
+
deserves a shape to match, clearly labelled recall-only. PRE-1952 MALTA IS
|
|
852
|
+
NOT MODELLED: the Motor Vehicles Regulations 1948 and the calesse-era
|
|
853
|
+
registrations that secondary sources mention for the 19th century are L4
|
|
854
|
+
historical depth under PRD-PLATES §7 and no primary was consulted.
|