vehicles 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +57 -7
- data/README.md +353 -69
- data/data/PROVENANCE-vehicles.md +2 -2
- data/data/plates/PROVENANCE.md +2 -2
- data/data/plates/_decode/at-districts.yml +2 -2
- data/data/plates/_decode/cn-issuing-offices.yml +2 -2
- data/data/plates/_decode/cn-provinces.yml +2 -2
- data/data/plates/_decode/cz-kraj.yml +1 -1
- data/data/plates/_decode/dk-serial-blocks.yml +1 -1
- data/data/plates/_decode/es-provinces.yml +1 -1
- data/data/plates/_decode/fr-departements.yml +2 -2
- data/data/plates/_decode/gb-age-identifiers.yml +1 -1
- data/data/plates/_decode/gb-memory-tags.yml +1 -1
- data/data/plates/_decode/gr-prefectures.yml +1 -1
- data/data/plates/_decode/hr-cities.yml +3 -3
- data/data/plates/_decode/ie-counties.yml +3 -3
- data/data/plates/_decode/in-state-codes.yml +2 -2
- data/data/plates/_decode/it-provinces.yml +3 -3
- data/data/plates/_decode/jp-office-marks.yml +2 -2
- data/data/plates/_decode/jp-use-marks.yml +2 -2
- data/data/plates/_decode/kr-authority-marks.yml +1 -1
- data/data/plates/_decode/mx-entity-series.yml +1 -1
- data/data/plates/_decode/my-index-marks.yml +4 -4
- data/data/plates/_decode/pt-trailer-services.yml +1 -1
- data/data/plates/_decode/ro-counties.yml +1 -1
- data/data/plates/_decode/se-diplomatic.yml +1 -1
- data/data/plates/_decode/si-regions.yml +1 -1
- data/data/plates/_decode/ua-regions.yml +1 -1
- data/data/plates/_meta/classes.yml +1 -1
- data/data/plates/_meta/separators.yml +1 -1
- data/data/plates/ad.yml +555 -52
- data/data/plates/ar.yml +8 -8
- data/data/plates/at.yml +91 -10
- data/data/plates/au-act.yml +13 -13
- data/data/plates/au-nsw.yml +9 -9
- data/data/plates/au-nt.yml +13 -14
- data/data/plates/au-qld.yml +7 -7
- data/data/plates/au-sa.yml +7 -7
- data/data/plates/au-tas.yml +10 -10
- data/data/plates/au-vic.yml +6 -6
- data/data/plates/au-wa.yml +8 -8
- data/data/plates/be.yml +11 -11
- data/data/plates/br.yml +14 -14
- data/data/plates/ca-ab.yml +10 -10
- data/data/plates/ca-bc.yml +6 -6
- data/data/plates/ca-mb.yml +4 -4
- data/data/plates/ca-nb.yml +9 -9
- data/data/plates/ca-nl.yml +11 -11
- data/data/plates/ca-ns.yml +12 -12
- data/data/plates/ca-nt.yml +7 -7
- data/data/plates/ca-nu.yml +7 -7
- data/data/plates/ca-on.yml +21 -21
- data/data/plates/ca-pe.yml +13 -13
- data/data/plates/ca-qc.yml +11 -11
- data/data/plates/ca-sk.yml +6 -6
- data/data/plates/ca-yt.yml +6 -6
- data/data/plates/ch.yml +14 -14
- data/data/plates/cn.yml +9 -9
- data/data/plates/cy.yml +6 -6
- data/data/plates/cz.yml +9 -9
- data/data/plates/de.yml +8 -8
- data/data/plates/dk.yml +12 -12
- data/data/plates/ee.yml +13 -13
- data/data/plates/eg.yml +708 -0
- data/data/plates/es.yml +8 -8
- data/data/plates/fi.yml +14 -14
- data/data/plates/fr.yml +12 -12
- data/data/plates/gb.yml +16 -16
- data/data/plates/gr.yml +14 -14
- data/data/plates/hr.yml +15 -15
- data/data/plates/hu.yml +16 -16
- data/data/plates/ie.yml +7 -7
- data/data/plates/in.yml +7 -7
- data/data/plates/is.yml +3 -3
- data/data/plates/it.yml +21 -21
- data/data/plates/jp.yml +121 -121
- data/data/plates/kr.yml +6 -6
- data/data/plates/li.yml +6 -6
- data/data/plates/lt.yml +10 -10
- data/data/plates/lu.yml +4 -4
- data/data/plates/lv.yml +9 -9
- data/data/plates/mc.yml +4 -4
- data/data/plates/mt.yml +5 -5
- data/data/plates/mx.yml +7 -7
- data/data/plates/my.yml +18 -18
- data/data/plates/ng.yml +346 -0
- data/data/plates/nl.yml +5 -5
- data/data/plates/no.yml +7 -7
- data/data/plates/nz.yml +18 -18
- data/data/plates/pl.yml +4 -4
- data/data/plates/pt.yml +13 -5
- data/data/plates/ro.yml +14 -14
- data/data/plates/se.yml +13 -13
- data/data/plates/si.yml +8 -8
- data/data/plates/sk.yml +15 -15
- data/data/plates/sm.yml +7 -7
- data/data/plates/th.yml +10 -10
- data/data/plates/tr.yml +432 -0
- data/data/plates/ua.yml +9 -9
- data/data/plates/us-ak.yml +11 -11
- data/data/plates/us-al.yml +12 -12
- data/data/plates/us-ar.yml +15 -15
- data/data/plates/us-as.yml +10 -10
- data/data/plates/us-az.yml +10 -10
- data/data/plates/us-ca.yml +13 -13
- data/data/plates/us-co.yml +14 -14
- data/data/plates/us-ct.yml +24 -24
- data/data/plates/us-dc.yml +7 -7
- data/data/plates/us-de.yml +10 -10
- data/data/plates/us-fl.yml +17 -17
- data/data/plates/us-ga.yml +10 -10
- data/data/plates/us-gu.yml +11 -11
- data/data/plates/us-hi.yml +11 -11
- data/data/plates/us-ia.yml +9 -9
- data/data/plates/us-id.yml +13 -13
- data/data/plates/us-il.yml +11 -11
- data/data/plates/us-in.yml +9 -9
- data/data/plates/us-ks.yml +8 -8
- data/data/plates/us-ky.yml +11 -11
- data/data/plates/us-la.yml +11 -11
- data/data/plates/us-ma.yml +10 -10
- data/data/plates/us-md.yml +7 -7
- data/data/plates/us-me.yml +16 -16
- data/data/plates/us-mi.yml +8 -8
- data/data/plates/us-mn.yml +13 -13
- data/data/plates/us-mo.yml +13 -13
- data/data/plates/us-mp.yml +12 -12
- data/data/plates/us-ms.yml +8 -8
- data/data/plates/us-mt.yml +12 -12
- data/data/plates/us-nc.yml +12 -12
- data/data/plates/us-nd.yml +10 -10
- data/data/plates/us-ne.yml +10 -10
- data/data/plates/us-nh.yml +8 -8
- data/data/plates/us-nj.yml +8 -8
- data/data/plates/us-nm.yml +14 -14
- data/data/plates/us-nv.yml +18 -18
- data/data/plates/us-ny.yml +17 -17
- data/data/plates/us-oh.yml +13 -13
- data/data/plates/us-ok.yml +12 -12
- data/data/plates/us-or.yml +15 -15
- data/data/plates/us-pa.yml +14 -14
- data/data/plates/us-pr.yml +15 -15
- data/data/plates/us-ri.yml +10 -10
- data/data/plates/us-sc.yml +7 -7
- data/data/plates/us-sd.yml +12 -12
- data/data/plates/us-tn.yml +8 -8
- data/data/plates/us-tx.yml +17 -17
- data/data/plates/us-ut.yml +12 -12
- data/data/plates/us-va.yml +14 -14
- data/data/plates/us-vi.yml +16 -16
- data/data/plates/us-vt.yml +9 -9
- data/data/plates/us-wa.yml +18 -18
- data/data/plates/us-wi.yml +8 -8
- data/data/plates/us-wv.yml +9 -9
- data/data/plates/us-wy.yml +10 -10
- data/data/plates/va.yml +7 -7
- data/data/plates/za.yml +11 -11
- data/data/vehicles.json +121081 -62015
- data/lib/generators/vehicles/templates/initializer.rb +21 -12
- data/lib/generators/vehicles/templates/vehicles_refresh_job.rb +8 -4
- data/lib/vehicles/color.rb +8 -1
- data/lib/vehicles/colors.rb +14 -10
- data/lib/vehicles/configuration.rb +82 -3
- data/lib/vehicles/data_source.rb +220 -0
- data/lib/vehicles/dataset.rb +38 -6
- data/lib/vehicles/dataset_resolution.rb +39 -3
- data/lib/vehicles/dataset_slice.rb +90 -0
- data/lib/vehicles/hosted_result.rb +94 -0
- data/lib/vehicles/http.rb +75 -7
- data/lib/vehicles/id_lookup.rb +37 -0
- data/lib/vehicles/kind_rule.rb +63 -0
- data/lib/vehicles/labels.rb +131 -0
- data/lib/vehicles/make.rb +45 -19
- data/lib/vehicles/model.rb +66 -19
- data/lib/vehicles/model_match.rb +16 -2
- data/lib/vehicles/model_matcher.rb +6 -7
- data/lib/vehicles/plates/series.rb +87 -8
- data/lib/vehicles/plates/template_fill.rb +2 -2
- data/lib/vehicles/plates/templates.rb +9 -5
- data/lib/vehicles/plates.rb +54 -8
- data/lib/vehicles/providers/hosted_provider.rb +145 -32
- data/lib/vehicles/providers/local_provider.rb +2 -2
- data/lib/vehicles/refresh_result.rb +74 -0
- data/lib/vehicles/refresher.rb +190 -54
- data/lib/vehicles/release_checks.rb +72 -0
- data/lib/vehicles/text_matcher.rb +19 -10
- data/lib/vehicles/validators/vehicle_make_validator.rb +18 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +17 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +119 -67
- data/rakelib/data_refresh.rake +1 -1
- data/rakelib/plates_refresh.rake +1 -1
- data/sig/vehicles.rbs +67 -13
- metadata +13 -2
data/data/plates/eg.yml
ADDED
|
@@ -0,0 +1,708 @@
|
|
|
1
|
+
# plates/eg.yml — Egypt (the plates spec gate L5).
|
|
2
|
+
#
|
|
3
|
+
# THE ONE THING TO READ FIRST: **NO EGYPTIAN INSTRUMENT PRINTS THE SERIAL MASK
|
|
4
|
+
# OF THE CURRENT PLATE, AND THAT IS A SOURCED STRUCTURAL CONCLUSION RATHER THAN
|
|
5
|
+
# A RESEARCH FAILURE.** Article 13 of the Traffic Law, as replaced by Law
|
|
6
|
+
# 121/2008, expressly DELEGATES "شكل اللوحات، والبيانات التى تتضمنها" — the
|
|
7
|
+
# shape of the plates and THE DATA THEY CONTAIN — to a decision of the Minister
|
|
8
|
+
# of Interior. Law 17/2024 re-delegated the same list to "the executive
|
|
9
|
+
# regulation of this Law". The only executive regulation the Ministry actually
|
|
10
|
+
# publishes is Interior Minister's Decision 2777 of **2000**, which predates the
|
|
11
|
+
# current design by eight years and describes a DIFFERENT, LEGACY plate.
|
|
12
|
+
#
|
|
13
|
+
# So every mask-bearing series in this file is `matching: recall-only`. This is
|
|
14
|
+
# the Nigeria shape from `plates/ng.yml` — an instrument that regulates colour,
|
|
15
|
+
# material, mounting, dimensions and deposits in detail and never once prints
|
|
16
|
+
# the grammar — and Egypt is the second jurisdiction in this corpus to show it.
|
|
17
|
+
#
|
|
18
|
+
# SEVEN STRUCTURAL FACTS
|
|
19
|
+
#
|
|
20
|
+
# 1. THE LATIN LINE IS A POSITIONAL GLOSS, NOT A TRANSLITERATION OF THE STRING.
|
|
21
|
+
# Egyptian plates print the Arabic serial on top and a smaller Latin/Western
|
|
22
|
+
# rendering beneath. Each Latin letter sits DIRECTLY BENEATH the Arabic
|
|
23
|
+
# letter occupying the same physical slot. Arabic reads right-to-left, so:
|
|
24
|
+
# **the Arabic letter sequence read RTL is the exact REVERSE of the
|
|
25
|
+
# Latin letter sequence read LTR.**
|
|
26
|
+
# Established photographically, twice, glyph by glyph (corpus D-1 and D-3 in
|
|
27
|
+
# the dossier). DIGITS ARE NOT REVERSED — Arabic-Indic numerals are written
|
|
28
|
+
# most-significant-first in both scripts, confirmed on the same photographs.
|
|
29
|
+
# THIS FILE STORES THE LATIN RENDERING IN PRINTED LEFT-TO-RIGHT ORDER, and
|
|
30
|
+
# `script:` below carries the map and the reversal rule. See fact 2 for why
|
|
31
|
+
# that is a recording choice and not a fold.
|
|
32
|
+
#
|
|
33
|
+
# 2. WHY THE LATIN RENDERING IS THE RECORDED ONE, AND WHY THAT IS NOT FOLDING.
|
|
34
|
+
# `plates/ua.yml` records a HOMOGLYPH fold: its Latin form is our own
|
|
35
|
+
# transliteration of Cyrillic letters that happen to be drawn identically.
|
|
36
|
+
# Egypt is a stronger case, not a weaker one — the Latin rendering is not
|
|
37
|
+
# ours at all, it is PRINTED ON THE PLATE BY THE ISSUING AUTHORITY. We record
|
|
38
|
+
# one of two official renderings and publish the other beside it.
|
|
39
|
+
# Three further reasons, stated so a reviewer can attack them:
|
|
40
|
+
# (a) the map is INJECTIVE — 17 Arabic letters to 17 DISTINCT Latin letters
|
|
41
|
+
# (A B C D E F G H K L M N R S T W Y), so nothing is destroyed and the
|
|
42
|
+
# reverse map below is exact. This was checked, not assumed; it is the
|
|
43
|
+
# Croatian ŠI→SI test and Egypt passes it.
|
|
44
|
+
# (b) the pattern DSL cannot express the alternative. `L` generates from a
|
|
45
|
+
# hardcoded Latin A-Z in `scripts/lint_plates.rb` and `[A-Z]` expands
|
|
46
|
+
# to 26 Latin letters that must be in the declared alphabet, so a file
|
|
47
|
+
# whose regexes were Arabic would fail its own gate on every line.
|
|
48
|
+
# (c) the Latin line is OPTIONAL and is being dropped — corpus D-4, an
|
|
49
|
+
# in-service plate, has no Latin line at all. So a regex must never
|
|
50
|
+
# REQUIRE it, and none here does; what is recorded is the rendering,
|
|
51
|
+
# not a claim that both lines are always present.
|
|
52
|
+
#
|
|
53
|
+
# 3. THE LETTER SET IS 17, AND THE "16" IN CIRCULATION IS TRACEABLE TO NOTHING.
|
|
54
|
+
# Both the English and Arabic Wikipedia tables carry exactly 17 rows and
|
|
55
|
+
# neither article states a count in prose. No source asserting 16 was found.
|
|
56
|
+
# Corroborating arithmetic, recorded as corroboration and NOT as a sourced
|
|
57
|
+
# rule: the Arabic alphabet has 28 letters, 28 − 17 = 11 excluded, and ten of
|
|
58
|
+
# those eleven are precisely the dotted twin of a retained letter
|
|
59
|
+
# (ب keeps / ت ث drop; ج / ح خ; د / ذ; ر / ز; س / ش; ص / ض; ط / ظ; ع / غ),
|
|
60
|
+
# leaving only ك unexplained. The set is internally consistent with a
|
|
61
|
+
# one-letter-per-visually-confusable-group rule. NO INSTRUMENT ENUMERATES IT.
|
|
62
|
+
#
|
|
63
|
+
# 4. THE "OFFENSIVE WORDS" EXCLUSION RULE DOES NOT EXIST. FOLKLORE, REFUTED.
|
|
64
|
+
# The story is real and the rule is not. Because the new plates print three
|
|
65
|
+
# SEPARATE letters, Egyptians read them as joined words, and in 2009 owners
|
|
66
|
+
# threatened litigation over the results. The Traffic Department's answer,
|
|
67
|
+
# quoted contemporaneously: «هذه الأحرف منفصلة، ولا ينبغي اعتبارها متصلة ...
|
|
68
|
+
# المسألة ليست تهريجا، ونحن لا نمزح في عملنا» — the letters are separate,
|
|
69
|
+
# they should not be treated as joined, and officials COMPLETELY REJECTED
|
|
70
|
+
# exchanging the plates. The stated basis for the 17-letter restriction is
|
|
71
|
+
# VISUAL CONFUSABILITY, not decency. No regex here excludes any combination.
|
|
72
|
+
#
|
|
73
|
+
# 5. THE GOVERNORATE IS PARTIALLY ENCODED — WHICH REFUTES THE COMMON BELIEF —
|
|
74
|
+
# BUT NO DECODE TABLE SHIPS. The widely repeated claim that Egyptian letters
|
|
75
|
+
# are purely sequential and carry no geography is WRONG. The General Traffic
|
|
76
|
+
# Department described the semantics itself in 2009: one letter for the
|
|
77
|
+
# governorate of the owner's RESIDENCE, one for the traffic unit, one for the
|
|
78
|
+
# registration. Law 66/1973 art. 2(2), as replaced in 2008, ties the
|
|
79
|
+
# competent traffic department to the governorate of the applicant's
|
|
80
|
+
# residence — statutory backing for the link. Photographic corroboration
|
|
81
|
+
# exists in exactly one case (corpus D-4, an Aswan tourist bus whose letters
|
|
82
|
+
# read RTL are ص و ن, matching ص و = Aswan).
|
|
83
|
+
# IT STILL DOES NOT SHIP. The only letter→governorate table is a 2014 press
|
|
84
|
+
# article, the Arabic Wikipedia article is a near-verbatim copy of it and is
|
|
85
|
+
# therefore NOT independent corroboration, and the allocating instrument was
|
|
86
|
+
# never found. The encoding is also PARTIAL by its own terms: Cairo and Giza
|
|
87
|
+
# are expressly unrestricted («لا تتقيد بأحرف معينة»). A table that is
|
|
88
|
+
# press-sourced, partially inapplicable and unpinned is exactly the kind of
|
|
89
|
+
# reproducible-everywhere artifact §2.4 forbids. V5.
|
|
90
|
+
#
|
|
91
|
+
# 6. THE COLOUR "CONTEST" IS NOT A CONTEST — IT IS TWO ERAS AND ONE OMISSION.
|
|
92
|
+
# Sources appear to disagree about brown: a 2014 press piece calls it
|
|
93
|
+
# "commercial", the Mint's own specimen labels it «مؤقت» (temporary), and
|
|
94
|
+
# English Wikipedia lists neither. Decision 2777 art. 340 سادسا settles it —
|
|
95
|
+
# the brown plate is ONE combined statutory category, «لوحات التجارى
|
|
96
|
+
# والمؤقت», commercial AND temporary. Each secondary source was reporting one
|
|
97
|
+
# half of one category. Recorded here because a reviewer who meets the two
|
|
98
|
+
# halves separately will otherwise "fix" the file in the wrong direction.
|
|
99
|
+
# ⚠ AND: the Ministry's OWN ENGLISH TRANSLATION of art. 340 SILENTLY OMITS
|
|
100
|
+
# category سادسا. Anyone working from the English page concludes brown does
|
|
101
|
+
# not exist. Use the Arabic.
|
|
102
|
+
#
|
|
103
|
+
# 7. NO HEX IS ASSERTED ANYWHERE IN THIS FILE. Article 340 names colours in
|
|
104
|
+
# words («أبيض» «أحمر» «أخضر» «أصفر ليمونى» «برتقالى» «بنى» «رمادى») and
|
|
105
|
+
# words are not hex. The modern band colours have no instrument at all —
|
|
106
|
+
# only the Egyptian Mint's ten specimen images. RGB values sampled from those
|
|
107
|
+
# JPEGs are recorded in `band_color_observed:` notes as a reproducibility aid
|
|
108
|
+
# for the verifier, deliberately NOT in `design.band.color`, because a value
|
|
109
|
+
# sampled off a JPEG render of a specimen is not a published colour spec and
|
|
110
|
+
# must not enter the dataset wearing one's clothes.
|
|
111
|
+
#
|
|
112
|
+
# §VERIFIER — open questions in priority order
|
|
113
|
+
# V1. THE BIG ONE: the post-2008 implementing decision required by art. 13.
|
|
114
|
+
# Between 2008 and 2024 it was a Minister-of-Interior decision; the MOI
|
|
115
|
+
# portal publishes only 2777/2000. Find it and most of this file rises a
|
|
116
|
+
# tier. manshurat.org search returns 403; cc.gov.eg is now subscription-
|
|
117
|
+
# gated.
|
|
118
|
+
# V2. An instrument for the 17-letter set. Wikipedia-tier only today.
|
|
119
|
+
# V3. Current plate DIMENSIONS. Decision 2777 gives 40x16 cm for the LEGACY
|
|
120
|
+
# plate; 35x17 cm for the current one is Wikipedia-only. Unreconciled, so
|
|
121
|
+
# NO dimension ships on the 2008 series.
|
|
122
|
+
# V4. The ي / ى / ی codepoint question — both Wikipedia tables print
|
|
123
|
+
# ی U+06CC (Farsi yeh), the underlying Arabic press writes ي U+064A, and
|
|
124
|
+
# Egyptian print commonly uses ى U+0649. Declared as U+064A here; the
|
|
125
|
+
# ambiguity is unresolved AT SOURCE and is recorded, not hidden.
|
|
126
|
+
# V5. The letter→governorate table and its allocating instrument (fact 5).
|
|
127
|
+
# V6. The diplomatic 2-digit right-hand group — presumably a mission/country
|
|
128
|
+
# code. No decode table sourced.
|
|
129
|
+
# V7. Export, dealer/trade, historic and military series — not investigated
|
|
130
|
+
# for want of any source. The plate VALIDITY PERIOD is delegated by
|
|
131
|
+
# art. 13 («مدة صلاحيتها») and its value is unknown.
|
|
132
|
+
# V8. «تحت الطلب» is CONTESTED and therefore ships as NO series: Decision 2777
|
|
133
|
+
# art. 340 files it under passenger vehicles meaning «سيارات نقل الموتى»
|
|
134
|
+
# (HEARSES), while the Mint's black specimen glosses it "on-call". One
|
|
135
|
+
# term, two incompatible readings, no instrument for the modern plate.
|
|
136
|
+
# V9. Live-site access: `www.moi.gov.eg` is a parked placeholder and
|
|
137
|
+
# `traffic.moi.gov.eg` returns a 246-byte stub from outside Egypt. Use the
|
|
138
|
+
# Wayback timestamps cited on each source line, not the live URLs.
|
|
139
|
+
jurisdiction: eg
|
|
140
|
+
|
|
141
|
+
# The EXACT characters Egyptian plates print, as a union of BOTH official
|
|
142
|
+
# renderings — §2.6 decision 2 says this key declares what the plate shows, and
|
|
143
|
+
# an Egyptian plate shows all four blocks below. Declaring REPLACES the global
|
|
144
|
+
# set, so the Latin A-Z and 0-9 must be present or every regex in this file
|
|
145
|
+
# would fail its own gate (see header fact 2b).
|
|
146
|
+
# Latin A-Z + Western 0-9 .... the lower sub-line, and the recorded rendering
|
|
147
|
+
# Arabic letters (17) ........ أ U+0623 ب U+0628 ج U+062C د U+062F
|
|
148
|
+
# ر U+0631 س U+0633 ص U+0635 ط U+0637
|
|
149
|
+
# ع U+0639 ف U+0641 ق U+0642 ل U+0644
|
|
150
|
+
# م U+0645 ن U+0646 ه U+0647 و U+0648
|
|
151
|
+
# ي U+064A
|
|
152
|
+
# Arabic-Indic digits ........ ٠-٩ U+0660-U+0669 (NOT the Extended
|
|
153
|
+
# Arabic-Indic U+06F0-U+06F9 Persian/Urdu forms)
|
|
154
|
+
# TWO CODEPOINT TRAPS, both measured rather than transcribed by eye:
|
|
155
|
+
# * ه is U+0647 ALONE. Both Wikipedia tables write it «هـ» = U+0647 followed
|
|
156
|
+
# by U+0640 ARABIC TATWEEL. The tatweel is PRESENTATIONAL — it forces the
|
|
157
|
+
# initial form so the isolated letter prints with a tail. U+0640 is NOT part
|
|
158
|
+
# of the letter and must never enter a character class or a key.
|
|
159
|
+
# * ي is declared as U+064A, and this is UNRESOLVED AT SOURCE (V4).
|
|
160
|
+
serial_alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789أبجدرسصطعفقلمنهوي٠١٢٣٤٥٦٧٨٩"
|
|
161
|
+
serial_alphabet_evidence: >-
|
|
162
|
+
The Latin and Western halves are directly observed on the plate and are not in
|
|
163
|
+
doubt. The 17 Arabic letters are `secondary-wikipedia` — no Egyptian
|
|
164
|
+
instrument enumerates them (V2), and the corroborating dotted-twin arithmetic
|
|
165
|
+
in header fact 3 is arithmetic, not authority. The declaration is deliberately
|
|
166
|
+
WIDER than the issuing grammar in its Latin half: all 26 Latin letters are
|
|
167
|
+
declared although only the 17 in `script.correspondence` are believed to
|
|
168
|
+
appear, because a too-narrow alphabet silently rejects real plates while a
|
|
169
|
+
too-wide one merely under-rejects, and the narrowing is the direction that
|
|
170
|
+
cannot be sourced.
|
|
171
|
+
|
|
172
|
+
script:
|
|
173
|
+
printed: "Arabic letters + Arabic-Indic digits (upper line); Latin letters + Western digits (lower sub-line)"
|
|
174
|
+
recorded_as: "the LATIN rendering, in printed left-to-right order (digits group, then letters group)"
|
|
175
|
+
recorded_as_rationale: >-
|
|
176
|
+
See header facts 1 and 2. The Latin rendering is printed by the authority,
|
|
177
|
+
is what OCR and a consumer's keyboard produce, and is the only rendering the
|
|
178
|
+
pattern DSL can express. It is NOT a transliteration produced by us.
|
|
179
|
+
letter_order_warning: >-
|
|
180
|
+
READ THIS BEFORE COMPARING OUR SERIAL TO ANY ARABIC-ORDER SOURCE. The Latin
|
|
181
|
+
letters are POSITION-ALIGNED with the Arabic letters, not sequence-aligned.
|
|
182
|
+
Reading the Latin line left-to-right therefore yields the Arabic letter
|
|
183
|
+
sequence REVERSED. A consumer that OCRs the Arabic line and reads it in
|
|
184
|
+
proper right-to-left order will produce the reverse of the string this file
|
|
185
|
+
records, and both strings are correct renderings of the same registration.
|
|
186
|
+
Digits are NOT affected — numerals run most-significant-first in both
|
|
187
|
+
scripts.
|
|
188
|
+
block_order: >-
|
|
189
|
+
Printed left-to-right the DIGIT group is on the left and the LETTER group on
|
|
190
|
+
the right, separated by a holographic security strip on current production.
|
|
191
|
+
In proper Arabic reading order (right-to-left) the LETTERS come first. Both
|
|
192
|
+
statements are true; they describe different axes.
|
|
193
|
+
correspondence:
|
|
194
|
+
# Arabic letter (codepoint) -> the Latin letter printed beneath it.
|
|
195
|
+
# INJECTIVE over all 17 — verified, and that is what makes the recorded
|
|
196
|
+
# rendering lossless (header fact 2a). Latin letters NEVER used: I J O P Q
|
|
197
|
+
# U V X Z.
|
|
198
|
+
"أ U+0623": A
|
|
199
|
+
"ب U+0628": B
|
|
200
|
+
"ج U+062C": G
|
|
201
|
+
"د U+062F": D
|
|
202
|
+
"ر U+0631": R
|
|
203
|
+
"س U+0633": S
|
|
204
|
+
"ص U+0635": C
|
|
205
|
+
"ط U+0637": T
|
|
206
|
+
"ع U+0639": E
|
|
207
|
+
"ف U+0641": F
|
|
208
|
+
"ق U+0642": K
|
|
209
|
+
"ل U+0644": L
|
|
210
|
+
"م U+0645": M
|
|
211
|
+
"ن U+0646": N
|
|
212
|
+
"ه U+0647": H
|
|
213
|
+
"و U+0648": W
|
|
214
|
+
"ي U+064A": Y
|
|
215
|
+
correspondence_evidence: "secondary-wikipedia (en + ar, identical tables), corroborated glyph-by-glyph on the photographs in the dossier corpus"
|
|
216
|
+
|
|
217
|
+
authority:
|
|
218
|
+
name: "الإدارة العامة للمرور — General Department of Traffic, Ministry of Interior (وزارة الداخلية)"
|
|
219
|
+
url: "https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx"
|
|
220
|
+
authority_evidence: >-
|
|
221
|
+
Law 66/1973 art. 13 vests issuance in «إدارة المرور المختصة» and makes the
|
|
222
|
+
plates STATE PROPERTY sealed with the State seal. The url is the Traffic
|
|
223
|
+
Department's own publication of Interior Minister's Decision 2777/2000,
|
|
224
|
+
not a ministry landing page. It is geo-restricted — use the Wayback
|
|
225
|
+
timestamps on the source lines. Note the ministry root www.moi.gov.eg
|
|
226
|
+
currently serves a parked placeholder.
|
|
227
|
+
manufacturer:
|
|
228
|
+
name: "مصلحة سك العملة — Egyptian Mint Authority, Ministry of Finance"
|
|
229
|
+
url: "http://www.egyptmint.gov.eg/Home/Plates"
|
|
230
|
+
note: >-
|
|
231
|
+
A SEPARATE body from the issuing authority, and the best available source
|
|
232
|
+
for the modern band colours because it publishes ten blank class
|
|
233
|
+
specimens. Its own page states the plates are coded «وفق نظام تكويد معين
|
|
234
|
+
تم الأتفاق عليه بين وزارة المالية ... ووزارة الداخلية» — according to a
|
|
235
|
+
coding system AGREED BETWEEN the two ministries. That sentence is itself
|
|
236
|
+
evidence that the serial grammar is an inter-ministerial administrative
|
|
237
|
+
arrangement rather than a published legal rule, which is header fact 0
|
|
238
|
+
restated by the body that makes the plates.
|
|
239
|
+
|
|
240
|
+
binding: vehicle
|
|
241
|
+
binding_note: >-
|
|
242
|
+
Law 66/1973 art. 13: the plates are «ملك الدولة» — State property, sealed with
|
|
243
|
+
the State seal. Art. 14, as replaced by Law 121/2008: «لا يجوز استعمال اللوحات
|
|
244
|
+
إلا للمركبة المنصرفة لها» — plates may be used only for the vehicle they were
|
|
245
|
+
issued to, may not be swapped, and their data may not be altered. Art. 12(1):
|
|
246
|
+
the licence is valid only for the vehicle it was issued for.
|
|
247
|
+
|
|
248
|
+
instrument:
|
|
249
|
+
act:
|
|
250
|
+
citation: "قانون المرور الصادر بالقانون رقم 66 لسنة 1973 — Traffic Law, Law No. 66 of 1973"
|
|
251
|
+
url: "https://manshurat.org/sites/default/files/%D9%82%D8%A7%D9%86%D9%88%D9%86%20%D8%B1%D9%82%D9%85%2066%20%D9%84%D8%B3%D9%86%D8%A9%2073%20-%D8%A7%D9%84%D9%85%D8%B1%D9%88%D8%B1.pdf"
|
|
252
|
+
relevant_articles: >-
|
|
253
|
+
Art. 13 (two metal plates; State property; the Minister determines shape,
|
|
254
|
+
DATA CONTAINED, security marks, validity, mounting, deposit) — the
|
|
255
|
+
delegation that is the whole reason this file is recall-only. Art. 14
|
|
256
|
+
(plates usable only on the vehicle issued to). Art. 2(2) (competent
|
|
257
|
+
traffic department = that of the applicant's governorate of residence).
|
|
258
|
+
Art. 12 (licence vehicle-specific; vehicle may travel countrywide).
|
|
259
|
+
amendment_2008:
|
|
260
|
+
citation: "القانون رقم 121 لسنة 2008 — Law No. 121 of 2008, الجريدة الرسمية العدد 23 مكرر، 9 يونية 2008"
|
|
261
|
+
url: "https://manshurat.org/sites/default/files/docs/pdf/015473.pdf"
|
|
262
|
+
effect: >-
|
|
263
|
+
REPLACED art. 13 in its entirety and re-delegated the shape, the data, the
|
|
264
|
+
security marks, the validity period and the mounting to a decision of the
|
|
265
|
+
Minister of Interior, raising the deposit ceiling to EGP 100. This is the
|
|
266
|
+
legal act that enables the current design. It does NOT describe the
|
|
267
|
+
design.
|
|
268
|
+
amendment_2024:
|
|
269
|
+
citation: "القانون رقم 17 لسنة 2024 — Law No. 17 of 2024, الجريدة الرسمية العدد 13 تابع (أ)، 28 مارس 2024"
|
|
270
|
+
url: "https://manshurat.org/sites/default/files/ldd_13tb_-_mwmn-2-7.pdf"
|
|
271
|
+
effect: >-
|
|
272
|
+
Moved the delegatee from "the Minister of Interior by his decision" to
|
|
273
|
+
"the executive regulation of this Law", and introduced a plate-development
|
|
274
|
+
charge of up to EGP 600. THE DELEGATION STILL ENUMERATES NO LETTERS AND NO
|
|
275
|
+
DIGITS. Also globally replaces «نارية» with «آلية» for motorcycles. This
|
|
276
|
+
is a live change inside the last three years and is recorded as such; it
|
|
277
|
+
is NOT an era boundary, because a change in who writes the specification
|
|
278
|
+
is not evidence that the specification changed.
|
|
279
|
+
regulation:
|
|
280
|
+
citation: "قرار وزير الداخلية رقم 2777 لسنة 2000 — Interior Minister's Decision No. 2777 of 2000"
|
|
281
|
+
url: "https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx"
|
|
282
|
+
relevant_articles: "340 (colours, dimensions, classes) · 341 (issued per vehicle type/use) · 342 (material and layout) · 343 (deposits) · 344-345 (mounting) · 346-348 (surrender)"
|
|
283
|
+
caution: >-
|
|
284
|
+
⚠ THE INSTRUMENT IN FORCE DESCRIBES A PLATE THAT IS NO LONGER ISSUED.
|
|
285
|
+
Art. 342's layout — licence type + issuing authority + numbers in Arabic
|
|
286
|
+
on the RIGHT, licence type + numbers + «مدلول المحافظة باللغة الإنجليزية»
|
|
287
|
+
(governorate indicator in ENGLISH) on the LEFT — is the PRE-2008 plate,
|
|
288
|
+
confirmed exactly by a photographed legacy plate. Art. 340's whole-plate
|
|
289
|
+
background colours and 40x16 cm dimensions are likewise legacy. DO NOT
|
|
290
|
+
derive the modern mask, the modern colours or the modern dimensions from
|
|
291
|
+
Decision 2777. Its non-repeal is not evidence the legacy format is still
|
|
292
|
+
issued; it is an un-updated regulation.
|
|
293
|
+
|
|
294
|
+
series:
|
|
295
|
+
|
|
296
|
+
# =========================================================================
|
|
297
|
+
# THE ORDINARY MARK, 2008-. One layout, one grammar, one period; the
|
|
298
|
+
# civilian classes below differ from it only in the colour of the top band
|
|
299
|
+
# and in which vehicles they are issued to. Each is its own series because
|
|
300
|
+
# `class:` is a first-class per-series field and these are distinct legal
|
|
301
|
+
# licence classes — the `in-transport-1989` precedent, where the goods
|
|
302
|
+
# distinction rides on `categories:` rather than on a new class term.
|
|
303
|
+
# =========================================================================
|
|
304
|
+
- id: eg-standard-2008
|
|
305
|
+
class: standard
|
|
306
|
+
categories: [car, van]
|
|
307
|
+
period: { start: 2008 }
|
|
308
|
+
period_evidence: enabling-instrument
|
|
309
|
+
period_note: >-
|
|
310
|
+
2008 = Law 121/2008, gazetted 9 June 2008, which replaced art. 13 and
|
|
311
|
+
enabled the redesign. AN ENABLING-INSTRUMENT DATE, NOT A FIRST-ISSUE DATE,
|
|
312
|
+
and the two are deliberately kept apart. The separate and weaker
|
|
313
|
+
first-issue claim is "August 2008" (secondary-wikipedia), corroborated by
|
|
314
|
+
contemporaneous press in August 2009 describing the plates as adopted
|
|
315
|
+
«منذ ما يقرب من عام» — about a year earlier — and by the Egyptian Mint
|
|
316
|
+
dating the secure-plate manufacturing award to December 2007. None of
|
|
317
|
+
those is instrument-grade and none is recorded as the period start.
|
|
318
|
+
matching: recall-only
|
|
319
|
+
matching_note: >-
|
|
320
|
+
recall-only for TWO independent reasons, either of which alone would be
|
|
321
|
+
enough. (1) No instrument prints the mask — art. 13 delegates "البيانات
|
|
322
|
+
التى تتضمنها" away and Decision 2777/2000 describes the legacy plate
|
|
323
|
+
(header fact 0). (2) The regex is a genuine UNION across three
|
|
324
|
+
governorate-specific shapes, so it accepts combinations no governorate
|
|
325
|
+
issues — 3 digits with 2 letters, for instance, is matched here and is not
|
|
326
|
+
an issued shape anywhere. A match is a shape hit and nothing more.
|
|
327
|
+
format:
|
|
328
|
+
# Recorded in the LATIN rendering, printed left-to-right: digits group
|
|
329
|
+
# then letters group (see `script:`). The gap is the emitted SPACE of
|
|
330
|
+
# §2.6 and is optional in the regex, because the two groups are separated
|
|
331
|
+
# by a holographic strip rather than by a printed character.
|
|
332
|
+
pattern: "9999 LLL"
|
|
333
|
+
regex: '\A\d{3,4} ?[A-Z]{2,3}\z'
|
|
334
|
+
charset:
|
|
335
|
+
used: "A B C D E F G H K L M N R S T W Y"
|
|
336
|
+
excluded: [I, J, O, P, Q, U, V, X, Z]
|
|
337
|
+
excluded_basis: >-
|
|
338
|
+
These nine Latin letters are absent because no Arabic letter in the
|
|
339
|
+
17-letter set maps to them (see `script.correspondence`), NOT because
|
|
340
|
+
any instrument excludes them. The restriction is therefore carried
|
|
341
|
+
here as documentation and NOT in a `regex_strict` — `matching:
|
|
342
|
+
recall-only` forbids a strict twin, and rightly so: narrowing on a
|
|
343
|
+
Wikipedia-tier alphabet is exactly the unsourced narrowing that
|
|
344
|
+
silently rejects real plates.
|
|
345
|
+
progression: >-
|
|
346
|
+
Not sourced. The General Traffic Department described the three letters
|
|
347
|
+
in 2009 as a code — one for the owner's governorate of residence, one
|
|
348
|
+
for the traffic unit, one for the registration — but no allocating rule
|
|
349
|
+
or sequence was published. FOLKLORE, FLAGGED AND NOT ASSERTED: the
|
|
350
|
+
common claim that the letters simply advance alphabetically nationwide
|
|
351
|
+
is unsupported and is inconsistent with the governorate semantics the
|
|
352
|
+
authority itself gave.
|
|
353
|
+
variants:
|
|
354
|
+
- format: { pattern: "999 LLL" }
|
|
355
|
+
note: >-
|
|
356
|
+
CAIRO (القاهرة) — three digits, three letters. Cairo and Giza are
|
|
357
|
+
expressly NOT restricted to particular letters; officials choose
|
|
358
|
+
freely subject only to non-repetition.
|
|
359
|
+
- format: { pattern: "9999 LL" }
|
|
360
|
+
note: >-
|
|
361
|
+
GIZA (الجيزة) — four digits, TWO letters. The only shape in the file
|
|
362
|
+
with a two-letter group, and the reason the parent regex quantifies
|
|
363
|
+
[A-Z]{2,3} rather than fixing three.
|
|
364
|
+
design:
|
|
365
|
+
band:
|
|
366
|
+
side: top
|
|
367
|
+
content: "coloured band bearing EGYPT (left), the national emblem (centre) and مصر (right)"
|
|
368
|
+
band_note: >-
|
|
369
|
+
The class-distinguishing colour of the modern plate lives in this TOP
|
|
370
|
+
BAND, not in the plate ground — which is the structural difference
|
|
371
|
+
between the 2008 design and the art. 340 legacy design, where the whole
|
|
372
|
+
plate carried the colour.
|
|
373
|
+
band_color_words: "light blue (الملاكى / private) — the Egyptian Mint's own class label on its specimen"
|
|
374
|
+
band_color_observed: >-
|
|
375
|
+
RGB ~ABD6E8 sampled from the Mint's blank specimen JPEG. RECORDED HERE
|
|
376
|
+
AND DELIBERATELY NOT IN `design.band.color`: a value sampled off a JPEG
|
|
377
|
+
render of a specimen is not a published colour spec (header fact 7).
|
|
378
|
+
background_note: "white ground, black characters — observed; art. 340's white/black is for the LEGACY passenger plate and is not carried over as a claim about this design"
|
|
379
|
+
material: >-
|
|
380
|
+
Decision 2777 art. 342 (still in force, and consistent with current
|
|
381
|
+
practice): pure aluminium, thickness not less than 1 mm, covered with a
|
|
382
|
+
reflective layer. The Egyptian Mint independently describes reflective
|
|
383
|
+
security marks and a capacity of roughly 2,000 pairs a day.
|
|
384
|
+
security: "a holographic strip divides the digit and letter groups on current production — observed on the dossier corpus, no instrument"
|
|
385
|
+
dimensions_note: >-
|
|
386
|
+
NO DIMENSION SHIPS. Decision 2777 art. 340 gives 40 x 16 cm, but for the
|
|
387
|
+
LEGACY plate; 35 x 17 cm for the current plate is Wikipedia-only and has
|
|
388
|
+
no instrument. Unreconciled — V3.
|
|
389
|
+
rear_differs: false
|
|
390
|
+
mounting: "Law 66/1973 art. 13: one plate front, one rear. Trailers and semi-trailers carry ONE plate, at the rear."
|
|
391
|
+
region_encoding: none
|
|
392
|
+
region_encoding_mechanism: >-
|
|
393
|
+
`none` here means NO TABLE SHIPPED, not "no geography encoded" — the
|
|
394
|
+
distinction matters and header fact 5 sets out why the common "no
|
|
395
|
+
geography" belief is refuted and why the table still cannot ship. The
|
|
396
|
+
encoding is partial (Cairo and Giza are unrestricted), press-sourced, and
|
|
397
|
+
its allocating instrument was never found. V5.
|
|
398
|
+
notes: >-
|
|
399
|
+
The ordinary Egyptian mark. Issuance is NATIONAL, administered by
|
|
400
|
+
governorate traffic offices — this is expressly NOT the UAE emirate-level
|
|
401
|
+
model: one national law, one national authority, and art. 12 makes the
|
|
402
|
+
registration valid countrywide.
|
|
403
|
+
sources:
|
|
404
|
+
- "https://manshurat.org/sites/default/files/docs/pdf/015473.pdf # Law 121/2008 replacing art. 13: the Minister determines the shape and THE DATA THE PLATES CONTAIN — the delegation that makes this series recall-only; Official Gazette 23 bis, 9 June 2008, p.5 — accessed 2026-09-12"
|
|
405
|
+
- "https://manshurat.org/sites/default/files/%D9%82%D8%A7%D9%86%D9%88%D9%86%20%D8%B1%D9%82%D9%85%2066%20%D9%84%D8%B3%D9%86%D8%A9%2073%20-%D8%A7%D9%84%D9%85%D8%B1%D9%88%D8%B1.pdf # Law 66/1973 arts. 2(2), 12, 13, 14 — plates are State property, vehicle-bound, governorate of residence determines the competent office — accessed 2026-09-12"
|
|
406
|
+
- "https://web.archive.org/web/20251010130322/https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx # Decision 2777/2000 arts. 340, 342, 343 — legacy colours and dimensions, aluminium >= 1 mm reflective; the Arabic text, because the ministry's own English omits category سادسا — accessed 2026-09-12"
|
|
407
|
+
- "http://www.egyptmint.gov.eg/Home/Plates # Egyptian Mint Authority: the ten class specimens and the inter-ministerial coding statement — accessed 2026-09-12"
|
|
408
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Egypt # secondary-wikipedia: the 17-letter table and its Latin correspondence; the abandonment of the Latin sub-line for legibility — accessed 2026-09-12"
|
|
409
|
+
- "https://web.archive.org/web/20181001220455/http://www.masrawy.com/Autos/autos_news/details/2014/12/3/401710/ # press, 3 Dec 2014: the letter-group shapes per governorate (Cairo 3+3, Giza 4+2, others 4+3) and the Cairo/Giza non-restriction — the ONLY source for the masks, which is why this series is recall-only — accessed 2026-09-12"
|
|
410
|
+
|
|
411
|
+
- id: eg-transport-2008
|
|
412
|
+
class: standard
|
|
413
|
+
categories: [truck, van, trailer, tractor, machine]
|
|
414
|
+
period: { start: 2008 }
|
|
415
|
+
period_evidence: enabling-instrument
|
|
416
|
+
period_note: "as eg-standard-2008 — Law 121/2008, an enabling-instrument date"
|
|
417
|
+
matching: recall-only
|
|
418
|
+
matching_note: "as eg-standard-2008: no instrument prints the mask, and the regex unions the governorate shapes"
|
|
419
|
+
format:
|
|
420
|
+
pattern: "9999 LLL"
|
|
421
|
+
regex: '\A\d{3,4} ?[A-Z]{2,3}\z'
|
|
422
|
+
design:
|
|
423
|
+
band: { side: top, content: "red band bearing EGYPT / emblem / مصر" }
|
|
424
|
+
band_color_words: "red (النقل / goods transport) — Mint class label «ترخيص نقل»"
|
|
425
|
+
band_color_observed: "RGB ~DC2804 sampled from the Mint specimen JPEG — not a colour spec, see header fact 7"
|
|
426
|
+
legacy_note: >-
|
|
427
|
+
Decision 2777 art. 340 ثانيا put this class on a RED GROUND with WHITE
|
|
428
|
+
characters at 40 x 16 cm, grouping goods transport with trailers, heavy
|
|
429
|
+
equipment (الآلات under art. 30 of Law 66/1973), agricultural tractors
|
|
430
|
+
and agricultural trailers. The red survives the redesign as the band
|
|
431
|
+
colour; the whole-plate red does not.
|
|
432
|
+
region_encoding: none
|
|
433
|
+
notes: >-
|
|
434
|
+
Goods transport («نقل»). Egypt treats this as a distinct licence class,
|
|
435
|
+
but the plates spec §2.3 vocabulary has no term for a commercial/goods
|
|
436
|
+
class, so — following `in-transport-1989` — the class stays `standard` and
|
|
437
|
+
the distinction rides on `categories:`. AGRICULTURAL TRACTORS AND TRAILERS
|
|
438
|
+
ARE INSIDE THIS CATEGORY under art. 340 ثانيا rather than in a separate
|
|
439
|
+
agricultural series; that is the instrument's own grouping and it is not
|
|
440
|
+
second-guessed here.
|
|
441
|
+
sources:
|
|
442
|
+
- "https://web.archive.org/web/20251010130322/https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx # Decision 2777/2000 art. 340 ثانيا — goods transport, trailers, heavy equipment, agricultural tractors and trailers on one red/white plate — accessed 2026-09-12"
|
|
443
|
+
- "http://www.egyptmint.gov.eg/Home/Plates # Mint specimen «ترخيص نقل», red band — accessed 2026-09-12"
|
|
444
|
+
|
|
445
|
+
- id: eg-taxi-2008
|
|
446
|
+
class: taxi
|
|
447
|
+
categories: [car, van]
|
|
448
|
+
period: { start: 2008 }
|
|
449
|
+
period_evidence: enabling-instrument
|
|
450
|
+
matching: recall-only
|
|
451
|
+
format:
|
|
452
|
+
pattern: "9999 LLL"
|
|
453
|
+
regex: '\A\d{3,4} ?[A-Z]{2,3}\z'
|
|
454
|
+
design:
|
|
455
|
+
band: { side: top, content: "orange band bearing EGYPT / emblem / مصر" }
|
|
456
|
+
band_color_words: "orange (الأجرة / taxi) — art. 340 خامسا «برتقالى» with black characters; Mint class label «ترخيص اجره»"
|
|
457
|
+
band_color_observed: "RGB ~E28236 sampled from the Mint specimen JPEG"
|
|
458
|
+
region_encoding: none
|
|
459
|
+
notes: "For-hire vehicles, including «أجرة سياحة» (tourist hire) under art. 340 خامسا. Orange is one of the colours that survives the 2008 redesign from whole-plate ground to top band."
|
|
460
|
+
sources:
|
|
461
|
+
- "https://web.archive.org/web/20251010130322/https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx # Decision 2777/2000 art. 340 خامسا — taxi and tourist-hire, orange ground, black characters — accessed 2026-09-12"
|
|
462
|
+
- "http://www.egyptmint.gov.eg/Home/Plates # Mint specimen «ترخيص اجره», orange band — accessed 2026-09-12"
|
|
463
|
+
|
|
464
|
+
- id: eg-government-2008
|
|
465
|
+
class: government
|
|
466
|
+
categories: [car, van, truck, bus]
|
|
467
|
+
period: { start: 2008 }
|
|
468
|
+
period_evidence: secondary-first-issue
|
|
469
|
+
period_evidence_note: >-
|
|
470
|
+
Weaker than the civilian series above. Decision 2777 art. 340 has NO grey
|
|
471
|
+
category at all — it files government and governorate vehicles under the
|
|
472
|
+
white passenger class — so the grey band is known only from the Egyptian
|
|
473
|
+
Mint's specimen. The 2008 start is inherited from the redesign, not
|
|
474
|
+
independently sourced for this class.
|
|
475
|
+
matching: recall-only
|
|
476
|
+
format:
|
|
477
|
+
pattern: "9999 LLL"
|
|
478
|
+
regex: '\A\d{3,4} ?[A-Z]{2,3}\z'
|
|
479
|
+
design:
|
|
480
|
+
band: { side: top, content: "grey band bearing EGYPT / emblem / مصر" }
|
|
481
|
+
band_color_words: "grey (الحكومة / government) — Mint class label «ترخيص حكومه»"
|
|
482
|
+
band_color_observed: "RGB ~A29E9B sampled from the Mint specimen JPEG"
|
|
483
|
+
region_encoding: none
|
|
484
|
+
notes: "Civil government and governorate fleets. One of four modern classes (with tourism, police and on-call) that have NO counterpart in Decision 2777 — evidence that the 2008 redesign re-cut the class list and that the un-updated regulation cannot be used to enumerate it."
|
|
485
|
+
sources:
|
|
486
|
+
- "http://www.egyptmint.gov.eg/Home/Plates # Mint specimen «ترخيص حكومه», grey band — the only source for this class — accessed 2026-09-12"
|
|
487
|
+
|
|
488
|
+
- id: eg-tourism-2008
|
|
489
|
+
class: standard
|
|
490
|
+
categories: [bus, car, van]
|
|
491
|
+
period: { start: 2008 }
|
|
492
|
+
period_evidence: secondary-first-issue
|
|
493
|
+
period_evidence_note: "as eg-government-2008 — no art. 340 counterpart; the Mint specimen is the only source"
|
|
494
|
+
matching: recall-only
|
|
495
|
+
format:
|
|
496
|
+
pattern: "9999 LLL"
|
|
497
|
+
regex: '\A\d{3,4} ?[A-Z]{2,3}\z'
|
|
498
|
+
design:
|
|
499
|
+
band: { side: top, content: "beige band bearing EGYPT / emblem / مصر" }
|
|
500
|
+
band_color_words: "beige (السياحة / tourism) — Mint class label «ترخيص سياحه»"
|
|
501
|
+
band_color_observed: "RGB ~EFD3A3 sampled from the Mint specimen JPEG"
|
|
502
|
+
region_encoding: none
|
|
503
|
+
notes: >-
|
|
504
|
+
Tourism vehicles, principally tour buses. `class: standard` because the
|
|
505
|
+
§2.3 vocabulary has no tourism term; the distinction rides on
|
|
506
|
+
`categories:` and on this note. A photographed in-service plate of this
|
|
507
|
+
class (an Aswan tour bus) is the file's single piece of photographic
|
|
508
|
+
corroboration for the governorate encoding — and it carries NO LATIN LINE,
|
|
509
|
+
which is why no regex here requires one.
|
|
510
|
+
sources:
|
|
511
|
+
- "http://www.egyptmint.gov.eg/Home/Plates # Mint specimen «ترخيص سياحه», beige band — accessed 2026-09-12"
|
|
512
|
+
- "https://upload.wikimedia.org/wikipedia/commons/0/0a/License_plate_Egypt_tourist_bus.jpg # photographic: beige-band tour-bus plate, four digits + three letters, NO Latin sub-line; letters read RTL are ص و ن, corroborating ص و = Aswan — Commons 2015-01-03, accessed 2026-09-12"
|
|
513
|
+
|
|
514
|
+
- id: eg-police-2008
|
|
515
|
+
class: police
|
|
516
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
517
|
+
period: { start: 2008 }
|
|
518
|
+
period_evidence: secondary-first-issue
|
|
519
|
+
matching: recall-only
|
|
520
|
+
format:
|
|
521
|
+
pattern: "9999 LLL"
|
|
522
|
+
regex: '\A\d{3,4} ?[A-Z]{2,3}\z'
|
|
523
|
+
design:
|
|
524
|
+
band: { side: top, content: "dark blue band whose legend reads POLICE / الشرطة — it does NOT read EGYPT / مصر" }
|
|
525
|
+
band_color_words: "dark blue with white text (الشرطة / police) — Mint class label «ترخيص شرطه»"
|
|
526
|
+
band_color_observed: "RGB ~304989 sampled from the Mint specimen JPEG"
|
|
527
|
+
region_encoding: none
|
|
528
|
+
notes: >-
|
|
529
|
+
The only modern class whose band legend replaces the country name. Note a
|
|
530
|
+
secondary caution recorded and not resolved: Wikipedia states the
|
|
531
|
+
governorate letter-coding does not apply to army, police and diplomatic
|
|
532
|
+
vehicles, which would mean the letters on this series are not geographic
|
|
533
|
+
even to the partial extent described in header fact 5.
|
|
534
|
+
sources:
|
|
535
|
+
- "http://www.egyptmint.gov.eg/Home/Plates # Mint specimen «ترخيص شرطه», dark blue band, POLICE/الشرطة legend — accessed 2026-09-12"
|
|
536
|
+
|
|
537
|
+
- id: eg-diplomatic-2008
|
|
538
|
+
class: diplomatic
|
|
539
|
+
categories: [car, van]
|
|
540
|
+
period: { start: 2008 }
|
|
541
|
+
period_evidence: enabling-instrument
|
|
542
|
+
period_note: "Law 121/2008 as for the civilian series; the green diplomatic colour itself long predates it — art. 340 ثالثا gave diplomatic and consular vehicles a green ground with black characters."
|
|
543
|
+
matching: recall-only
|
|
544
|
+
matching_note: >-
|
|
545
|
+
No instrument prints this mask either. Unlike the civilian series the
|
|
546
|
+
regex here is not a union across governorates — it is a single shape on
|
|
547
|
+
secondary and photographic evidence — but the reason for recall-only is
|
|
548
|
+
the same and the stronger one: the grammar is not in any instrument.
|
|
549
|
+
format:
|
|
550
|
+
# DIGITS IN BOTH GROUPS — the diplomatic series carries no letters at all,
|
|
551
|
+
# which is why its pattern cannot be shared with the civilian ones.
|
|
552
|
+
pattern: "999 99"
|
|
553
|
+
regex: '\A\d{3} ?\d{2}\z'
|
|
554
|
+
design:
|
|
555
|
+
band: { side: top, content: "green band bearing EGYPT / emblem / مصر" }
|
|
556
|
+
band_color_words: "green (الدبلوماسي / diplomatic) — art. 340 ثالثا «أخضر» with black characters; Mint class label «ترخيص دبلوماسى»"
|
|
557
|
+
band_color_observed: "RGB ~5B9936 sampled from the Mint specimen JPEG"
|
|
558
|
+
region_encoding: none
|
|
559
|
+
notes: >-
|
|
560
|
+
Diplomatic and consular missions. The right-hand two-digit group is
|
|
561
|
+
presumably a mission or country code; NO DECODE TABLE IS SOURCED and none
|
|
562
|
+
ships (V6). Decision 2777 art. 340 ثالثا treats diplomatic and consular as
|
|
563
|
+
ONE category, so this file does not invent a separate consular series —
|
|
564
|
+
recording a distinction the instrument does not draw would be as much an
|
|
565
|
+
error as folding one it does.
|
|
566
|
+
sources:
|
|
567
|
+
- "https://web.archive.org/web/20251010130322/https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx # Decision 2777/2000 art. 340 ثالثا — diplomatic and consular as one category, green ground, black characters — accessed 2026-09-12"
|
|
568
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Egypt # secondary-wikipedia: diplomatic plates carry numbers in place of letters, ###-## — accessed 2026-09-12"
|
|
569
|
+
- "https://upload.wikimedia.org/wikipedia/commons/2/21/Egypt_-_License_Plate_-_Diplomatic.png # photographic corroboration of the all-digit shape — Commons 2020-03-11, accessed 2026-09-12"
|
|
570
|
+
|
|
571
|
+
- id: eg-temporary-commercial-2008
|
|
572
|
+
class: temporary
|
|
573
|
+
categories: [car, van, truck, bus, trailer]
|
|
574
|
+
period: { start: 2008 }
|
|
575
|
+
period_evidence: enabling-instrument
|
|
576
|
+
matching: recall-only
|
|
577
|
+
format:
|
|
578
|
+
pattern: "9999 LLL"
|
|
579
|
+
regex: '\A\d{3,4} ?[A-Z]{2,3}\z'
|
|
580
|
+
design:
|
|
581
|
+
band: { side: top, content: "brown band, white text" }
|
|
582
|
+
band_color_words: "brown (التجارى والمؤقت / commercial and temporary) — art. 340 سادسا «بنى» ground with «أبيض» characters; Mint class label «ترخيص مؤقت»"
|
|
583
|
+
band_color_observed: "RGB ~6F5C4A sampled from the Mint specimen JPEG"
|
|
584
|
+
region_encoding: none
|
|
585
|
+
notes: >-
|
|
586
|
+
THE CLASS THE SOURCES APPEAR TO FIGHT OVER, AND THEY DO NOT. Art. 340
|
|
587
|
+
سادسا creates ONE combined category «لوحات التجارى والمؤقت» — trade licence
|
|
588
|
+
and temporary licence together. A 2014 press piece reports only the
|
|
589
|
+
commercial half; the Mint labels its brown specimen only the temporary
|
|
590
|
+
half; English Wikipedia reports neither. See header fact 6. `class:
|
|
591
|
+
temporary` is chosen because it is the half the issuing authority's own
|
|
592
|
+
manufacturer names, and because the §2.3 vocabulary has `dealer` and
|
|
593
|
+
`temporary` but no combined term; the commercial half is recorded here
|
|
594
|
+
rather than lost.
|
|
595
|
+
sources:
|
|
596
|
+
- "https://web.archive.org/web/20251010130322/https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx # Decision 2777/2000 art. 340 سادسا — «لوحات التجارى والمؤقت», brown ground, white characters. NOTE the ministry's own English rendering of art. 340 omits this category entirely — accessed 2026-09-12"
|
|
597
|
+
- "http://www.egyptmint.gov.eg/Home/Plates # Mint specimen «ترخيص مؤقت», brown band with white text — accessed 2026-09-12"
|
|
598
|
+
|
|
599
|
+
- id: eg-customs-2008
|
|
600
|
+
class: temporary
|
|
601
|
+
categories: [car, van, truck]
|
|
602
|
+
period: { start: 2008 }
|
|
603
|
+
period_evidence: enabling-instrument
|
|
604
|
+
matching: recall-only
|
|
605
|
+
format:
|
|
606
|
+
pattern: "9999 LLL"
|
|
607
|
+
regex: '\A\d{3,4} ?[A-Z]{2,3}\z'
|
|
608
|
+
design:
|
|
609
|
+
band: { side: top, content: "yellow band" }
|
|
610
|
+
band_color_words: "lemon yellow (الجمارك والمنطقة الحرة / customs and free zone) — art. 340 رابعا «أصفر ليمونى» ground with «أحمر» characters; Mint class label «ترخيص جمرك»"
|
|
611
|
+
band_color_observed: "RGB ~E6C72F sampled from the Mint specimen JPEG"
|
|
612
|
+
region_encoding: none
|
|
613
|
+
notes: >-
|
|
614
|
+
Customs and free-zone vehicles — art. 340 رابعا covers «جمرك أجانب»
|
|
615
|
+
(foreigners' customs), «جمرك مصريين» (Egyptians' customs) and «منطقة حرة»
|
|
616
|
+
(free zone). ⚠ A DELIBERATE IMPRECISION, WRITTEN INTO THE ROW RATHER THAN
|
|
617
|
+
SMOOTHED OVER: The plates spec §2.3 vocabulary HAS NO `customs` TERM.
|
|
618
|
+
`temporary` is the nearest honest fit — these are duty-unpaid vehicles on
|
|
619
|
+
time-limited authority — but it is not what the instrument calls them, and
|
|
620
|
+
it collides with the genuinely temporary brown series above. The right fix
|
|
621
|
+
is a vocabulary addition by PR with a definition, per §2.3; that is
|
|
622
|
+
proposed in the dossier and deliberately NOT made here, because growing
|
|
623
|
+
the shared vocabulary inside a data PR is the ad-hoc growth §2.3 forbids.
|
|
624
|
+
sources:
|
|
625
|
+
- "https://web.archive.org/web/20251010130322/https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx # Decision 2777/2000 art. 340 رابعا — customs (foreign and Egyptian) and free zone, lemon-yellow ground, red characters — accessed 2026-09-12"
|
|
626
|
+
- "http://www.egyptmint.gov.eg/Home/Plates # Mint specimen «ترخيص جمرك», yellow band — accessed 2026-09-12"
|
|
627
|
+
|
|
628
|
+
- id: eg-motorcycle-2008
|
|
629
|
+
class: motorcycle
|
|
630
|
+
categories: [motorcycle, moped]
|
|
631
|
+
period: { start: 2008 }
|
|
632
|
+
period_evidence: enabling-instrument
|
|
633
|
+
matching: recall-only
|
|
634
|
+
format:
|
|
635
|
+
# PORTRAIT PLATE: the letters sit ABOVE the digits rather than beside
|
|
636
|
+
# them, so the printed reading order differs from every other series in
|
|
637
|
+
# this file. Recorded letters-first to match what the plate shows.
|
|
638
|
+
pattern: "LLL 9999"
|
|
639
|
+
regex: '\A[A-Z]{2,3} ?\d{3,4}\z'
|
|
640
|
+
design:
|
|
641
|
+
plate_note: "portrait format with the coloured band across the top, letters above digits"
|
|
642
|
+
band_color_words: "light blue — secondary-wikipedia"
|
|
643
|
+
legacy_dimensions: "Decision 2777 art. 340 gives 19 x 17.5 cm with a white ground and black characters for the LEGACY motorcycle plate; not carried over as a claim about the current one"
|
|
644
|
+
mounting: "Law 66/1973 art. 13: motorcycles carry a single plate at the rear"
|
|
645
|
+
region_encoding: none
|
|
646
|
+
notes: >-
|
|
647
|
+
Law 17/2024 globally replaced «دراجة نارية» with «دراجة آلية» in the
|
|
648
|
+
Traffic Law — a terminology change, not a format change, and recorded so
|
|
649
|
+
a later reader meeting both terms does not infer two regimes.
|
|
650
|
+
sources:
|
|
651
|
+
- "https://web.archive.org/web/20251010130322/https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx # Decision 2777/2000 art. 340 — legacy motorcycle plate 19 x 17.5 cm, white ground, black characters — accessed 2026-09-12"
|
|
652
|
+
- "https://upload.wikimedia.org/wikipedia/commons/d/df/Egypt_-_License_Plate_-_Motorcycle.png # photographic/diagram: portrait plate, letters above digits — Commons 2020-03-11, accessed 2026-09-12"
|
|
653
|
+
|
|
654
|
+
# =========================================================================
|
|
655
|
+
# THE CLOSED LEGACY SERIES. This is the plate Decision 2777 art. 342 actually
|
|
656
|
+
# describes, and it is the reason that article must not be read as evidence
|
|
657
|
+
# about the modern plate.
|
|
658
|
+
# =========================================================================
|
|
659
|
+
- id: eg-legacy-2000
|
|
660
|
+
class: standard
|
|
661
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
662
|
+
period: { start: 2000, end: 2008 }
|
|
663
|
+
period_evidence: instrument-in-force
|
|
664
|
+
period_note: >-
|
|
665
|
+
BOTH ENDS ARE WEAK AND BOTH SAY SO. 2000 is the date of Decision 2777, the
|
|
666
|
+
instrument that DESCRIBES this plate — the za.yml `instrument-in-force`
|
|
667
|
+
sense, expressly not a first-issue date; plates of this general shape are
|
|
668
|
+
far older. 2008 is the introduction of the replacement design, not a
|
|
669
|
+
sourced cessation of issue: no instrument states when the legacy series
|
|
670
|
+
stopped being issued, and legacy plates remained valid and in circulation
|
|
671
|
+
afterwards.
|
|
672
|
+
matching: recall-only
|
|
673
|
+
matching_note: >-
|
|
674
|
+
The regex covers the NUMERIC SERIAL ONLY. The plate also prints the
|
|
675
|
+
licence type and the governorate as WORDS, and those cannot be carried by
|
|
676
|
+
a serial regex at all — see `notes`. A match is therefore a shape hit
|
|
677
|
+
against a bare number, which is about as weak a claim as this dataset
|
|
678
|
+
makes, and it is marked accordingly.
|
|
679
|
+
format:
|
|
680
|
+
pattern: "9999"
|
|
681
|
+
regex: '\A\d{1,6}\z'
|
|
682
|
+
design:
|
|
683
|
+
layout: >-
|
|
684
|
+
Decision 2777 art. 342, verbatim in structure: the RIGHT side carries
|
|
685
|
+
the licence type, the issuing authority and the numbers IN ARABIC; the
|
|
686
|
+
LEFT side carries the licence type, the numbers, and «مدلول المحافظة
|
|
687
|
+
باللغة الإنجليزية» — the governorate indicator IN ENGLISH.
|
|
688
|
+
background_note: "whole-plate colour by class per art. 340 — white/black passenger, red/white goods, green/black diplomatic, lemon-yellow/red customs, orange/black taxi, brown/white commercial-and-temporary, grey/white for slow-transit carts, at 40 x 16 cm"
|
|
689
|
+
material: "pure aluminium, not less than 1 mm, reflective (art. 342)"
|
|
690
|
+
region_encoding: none
|
|
691
|
+
region_encoding_mechanism: >-
|
|
692
|
+
The legacy plate encoded the governorate EXPLICITLY and in Latin letters,
|
|
693
|
+
not through the serial — a photographed Aswan cart plate reads «C.ASN»
|
|
694
|
+
on its left side, where ASN is Aswan. No table ships: the abbreviation
|
|
695
|
+
list was never located, and this series is closed.
|
|
696
|
+
notes: >-
|
|
697
|
+
WHAT THE SCHEMA CANNOT CARRY, RECORDED HERE INSTEAD. The legacy plate
|
|
698
|
+
spelled the vehicle's activity out in words — «أجرة» «ملاكي» «نقل» «هيئة
|
|
699
|
+
دبلوماسية» «شرطة» «أتوبيس خاص» «أتوبيس عام» «رحلات» «جرار زراعي» — beside
|
|
700
|
+
the governorate name. Those words are part of the plate's identity but are
|
|
701
|
+
not part of the SERIAL, so they appear in no pattern. They were «ألغيت
|
|
702
|
+
تماما» — abolished entirely — in the 2008 design, which replaced them with
|
|
703
|
+
the single word «مصر» in the band. That abolition is the clearest single
|
|
704
|
+
marker of the era boundary.
|
|
705
|
+
sources:
|
|
706
|
+
- "https://web.archive.org/web/20251010130322/https://traffic.moi.gov.eg/Arabic/OurServices/InfoServices/InteriorMinisterDecision/Pages/license-plates-taxes-traffic-fees.aspx # Decision 2777/2000 arts. 340 and 342 — the legacy layout, the whole-plate class colours, 40 x 16 cm, aluminium >= 1 mm — accessed 2026-09-12"
|
|
707
|
+
- "https://upload.wikimedia.org/wikipedia/commons/3/3d/License_plates_of_Egypt_1129a.jpg # photographic: a legacy Aswan plate confirming art. 342 exactly — Arabic class word + governorate + numerals right, «C.ASN» + numerals left — Commons 2019-10-21, accessed 2026-09-12"
|
|
708
|
+
- "https://web.archive.org/web/20181001220455/http://www.masrawy.com/Autos/autos_news/details/2014/12/3/401710/ # press, 3 Dec 2014: the activity words were abolished entirely in the new plates and replaced by «مصر» — accessed 2026-09-12"
|