vehicles 0.6.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 +274 -0
- data/README.md +55 -10
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +5 -4
- 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/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 +1 -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 +553 -118
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +228 -32
- 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 +44 -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 +319 -96
- 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 +17 -3
- 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 +21 -2
- data/lib/vehicles/plates/series.rb +172 -18
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +12 -0
- data/lib/vehicles/providers/hosted_provider.rb +28 -55
- 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 +32 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +164 -2
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
# plates/us-az.yml — Arizona (PRD-PLATES gate L2, mountain group).
|
|
2
|
+
#
|
|
3
|
+
# ARIZONA IS THE NAMED ADVERSE STATE, and this pass pins the evidence rather
|
|
4
|
+
# than repeating the assertion. The US research dossier recorded Arizona as
|
|
5
|
+
# "the most adverse posture found" but traced it only to a Wikipedia summary.
|
|
6
|
+
# The underlying instrument is the Arizona Secretary of State's own library
|
|
7
|
+
# policy, and its words are quoted verbatim in `artwork_risk` below, with the
|
|
8
|
+
# statutory hook (A.R.S. § 39-121.03) it points to. Read that section before
|
|
9
|
+
# rendering anything Arizonan.
|
|
10
|
+
#
|
|
11
|
+
# THE OTHER ARIZONA SURPRISE is structural: Arizona's statute delegates almost
|
|
12
|
+
# everything. § 28-2351 gives the director colour and design; § 28-2406 gives
|
|
13
|
+
# the department the number of positions on a personalized plate. There is NO
|
|
14
|
+
# statutory character cap of the Florida (seven) or Colorado (six) kind. What
|
|
15
|
+
# the 2022 amendment to § 28-2351 DOES prescribe is oddly specific and worth
|
|
16
|
+
# the whole file: the STATE NAME's typeface class and height, in law.
|
|
17
|
+
#
|
|
18
|
+
# WHY THE FORMAT SECTION READS AS IT DOES: since February 2021 Arizona's
|
|
19
|
+
# standard serial is SIX ALPHANUMERIC POSITIONS OF WHICH ONLY THE FOURTH IS
|
|
20
|
+
# GUARANTEED A DIGIT. The human-pattern DSL (9=digit, L=letter) has no
|
|
21
|
+
# alphanumeric token, so `pattern` shows one representative arrangement and the
|
|
22
|
+
# REGEX carries the real grammar. That divergence is stated in `pattern_note`
|
|
23
|
+
# rather than papered over — Arizona is the schema stressor for a mixed
|
|
24
|
+
# alphanumeric position, exactly as Japan is for composed fields.
|
|
25
|
+
#
|
|
26
|
+
# WHAT IS NOT HERE (PRD-PLATES §2.5): individual special-plate DESIGNS.
|
|
27
|
+
jurisdiction: us-az
|
|
28
|
+
authority:
|
|
29
|
+
name: Arizona Department of Transportation, Motor Vehicle Division (ADOT MVD)
|
|
30
|
+
url: "https://azdot.gov/motor-vehicles/vehicle-services/license-plates"
|
|
31
|
+
binding: owner
|
|
32
|
+
binding_note: >-
|
|
33
|
+
ARIZONA IS A PLATE-FOLLOWS-THE-OWNER STATE, which makes it the North American
|
|
34
|
+
cousin of Switzerland and the reason `binding:` exists as a field. ADOT's own
|
|
35
|
+
guidance is that the plate belongs to the vehicle owner and may be transferred
|
|
36
|
+
from one vehicle to another; § 28-2356 is titled "Transfer of license plates
|
|
37
|
+
to another vehicle; credit" and governs the transfer and the credit for
|
|
38
|
+
unexpired fees. A vehicle-keyed consumer that assumes an Arizona plate
|
|
39
|
+
identifies a VEHICLE across time will be wrong. (The ADOT page stating the
|
|
40
|
+
ownership rule could not be fetched in this pass — azdot.gov is behind a
|
|
41
|
+
Cloudflare challenge that returns 403 to every automated client tried — so the
|
|
42
|
+
claim rests on § 28-2356's existence plus a locator; recorded honestly.)
|
|
43
|
+
statute_edition: >-
|
|
44
|
+
Arizona Revised Statutes as served by the Arizona State Legislature at
|
|
45
|
+
azleg.gov, read in this pass. Title 28, Chapter 7, Article 11 (License Plates
|
|
46
|
+
Generally, §§ 28-2351 to 28-2356) and Article 12 (Special Plates, § 28-2401
|
|
47
|
+
onward).
|
|
48
|
+
|
|
49
|
+
# ---------------------------------------------------------------------------
|
|
50
|
+
# artwork_risk — required per jurisdiction by PRD-PLATES §4. THE FLAGGED ONE.
|
|
51
|
+
# ---------------------------------------------------------------------------
|
|
52
|
+
artwork_risk:
|
|
53
|
+
posture: copyright-expressly-asserted
|
|
54
|
+
basis: >-
|
|
55
|
+
Arizona expressly asserts copyright over state government works. The
|
|
56
|
+
assertion is made by the Arizona State Library, Archives and Public Records
|
|
57
|
+
— a division of the Arizona Secretary of State — in its published Website
|
|
58
|
+
Policies, under the heading "Copyright Policy", verbatim: "Arizona state
|
|
59
|
+
government works: Unlike federal works, state works are not in the public
|
|
60
|
+
domain and are protected by copyright. However, public records laws may
|
|
61
|
+
allow reproduction in some instances. Any user intending to obtain any
|
|
62
|
+
public records information on this website for a commercial purpose is
|
|
63
|
+
required under Arizona law to pay a commercial fee as established by the
|
|
64
|
+
Secretary of State's office. You must follow the procedures described in
|
|
65
|
+
A.R.S. § 39-121.03 in order to obtain permission to use public records for a
|
|
66
|
+
commercial purpose." The same page states the contrast case in its own
|
|
67
|
+
words — "Federal government works: Information in federal publications are
|
|
68
|
+
not protected by copyright (17 USC 105)" — so the state is drawing the
|
|
69
|
+
distinction deliberately, not by oversight.
|
|
70
|
+
fetch_note: >-
|
|
71
|
+
THE LIVE URL COULD NOT BE FETCHED. azlibrary.gov, azdot.gov and az.gov all
|
|
72
|
+
sit behind a Cloudflare interstitial that returns HTTP 403 to every
|
|
73
|
+
automated client attempted in this pass. The quotation above was read from
|
|
74
|
+
the Internet Archive capture of 15 September 2023, which is cited alongside
|
|
75
|
+
the live URL below. This is recorded because a claim this consequential
|
|
76
|
+
should carry its retrieval conditions, and because a future pass should
|
|
77
|
+
re-verify the live text before anything is rendered.
|
|
78
|
+
what_this_does_and_does_not_reach: >-
|
|
79
|
+
It does NOT reach the statutes. Edicts of government are uncopyrightable at
|
|
80
|
+
every level (PRD-PLATES §4), so §§ 28-2351, 28-2354, 28-2356 and 28-2406 —
|
|
81
|
+
every legal claim in this file — are public domain regardless of Arizona's
|
|
82
|
+
posture, and the ADOT-sourced facts are facts. What the posture reaches is
|
|
83
|
+
the DESIGN: the Four Peaks silhouette, the sunset gradient, the saguaro. In
|
|
84
|
+
Arizona those are the highest-risk act in the whole programme.
|
|
85
|
+
emblem_rule: >-
|
|
86
|
+
STRICTEST PATH, no exceptions. Render `graphic: {present: true, rendered:
|
|
87
|
+
placeholder}` for the desert scene and the saguaro; do not trace, do not
|
|
88
|
+
trace from a photograph, do not approximate the Four Peaks silhouette
|
|
89
|
+
closely enough to be substitutable, and do not embed any Arizona typeface
|
|
90
|
+
binary. Arizona state seal statutes are UNRESEARCHED — the standing gap
|
|
91
|
+
from the US dossier §4.5 — and the seal regime is independent of copyright,
|
|
92
|
+
so it would survive even a favourable copyright answer.
|
|
93
|
+
photograph_caution: >-
|
|
94
|
+
The Commons finding cuts the same way here as everywhere: a CC BY-SA tag on
|
|
95
|
+
an Arizona plate photograph is the PHOTOGRAPHER's licence on the PHOTOGRAPH,
|
|
96
|
+
and the uploader had no standing over the design. In Arizona that cuts
|
|
97
|
+
BOTH ways and the second direction matters more than usual — a permissive
|
|
98
|
+
tag on a photo is no permission at all against a state that has asserted
|
|
99
|
+
copyright in terms. Because our renders are generated from the statute and
|
|
100
|
+
never derived from a photograph, neither the photographer's obligations nor
|
|
101
|
+
the photograph itself is ever in the chain.
|
|
102
|
+
sources:
|
|
103
|
+
- "https://azlibrary.gov/website-policies # Arizona State Library, Archives and Public Records (Office of the Arizona Secretary of State), Copyright Policy: 'Arizona state government works: Unlike federal works, state works are not in the public domain and are protected by copyright.' LIVE URL 403s to automated clients; read via https://web.archive.org/web/20230915005643/https://azlibrary.gov/website-policies"
|
|
104
|
+
- "https://www.azleg.gov/ars/39/00121-03.htm # A.R.S. § 39-121.03, the commercial-purpose public-records procedure the copyright policy routes commercial users through. NOT FETCHED in this pass (azleg.gov returned a socket hang-up on this section twice); pinned as the target to read, and no content is attributed to it here."
|
|
105
|
+
- "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR ONLY (PRD-PLATES §4) — where the azlibrary.gov pointer was found. The policy itself is what is quoted."
|
|
106
|
+
|
|
107
|
+
# ---------------------------------------------------------------------------
|
|
108
|
+
# The US standards chain.
|
|
109
|
+
# ---------------------------------------------------------------------------
|
|
110
|
+
us_standards:
|
|
111
|
+
no_federal_mandate: true
|
|
112
|
+
chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption."
|
|
113
|
+
aamva_edition_3:
|
|
114
|
+
dimensions_delegated: "AAMVA §3.1 sends dimensions and bolt holes to SAE J686, whose text is PAYWALLED and UNPINNED. No J686 dimension is quoted."
|
|
115
|
+
character_layout: "AAMVA §2.2: characters at least 2.5 in high, spaced at least 0.25 in apart, stroke weight 0.2-0.4 in, at least 1.25 in clear of top and bottom edges."
|
|
116
|
+
jurisdiction_name_layout: >-
|
|
117
|
+
AAMVA §2.1 recommends the jurisdiction name in the top centre between the
|
|
118
|
+
bolt holes, at least 0.25 in above the plate number and 0.125 in from the
|
|
119
|
+
top edge, with jurisdiction characters 0.75-1.0 in. ARIZONA IS THE ONE
|
|
120
|
+
STATE IN THIS GROUP THAT LEGISLATED ITS OWN VERSION OF THIS RULE, and it
|
|
121
|
+
lands INSIDE the AAMVA band: § 28-2351, post-24 September 2022, requires
|
|
122
|
+
the state name in capitals, in a SANS SERIF font, three-fourths of an inch
|
|
123
|
+
high. That is 0.75 in — the bottom of AAMVA's recommended range, in
|
|
124
|
+
Arizona law. A rare, checkable instance of voluntary adoption showing up
|
|
125
|
+
in statute.
|
|
126
|
+
stacked_characters: "AAMVA: stacked characters are part of the official plate number and no more than two may be stacked. Arizona's statute is silent; the normalisation decision belongs in the parse layer."
|
|
127
|
+
replacement_cycle: "AAMVA §1.1 recommends a cycle not to exceed 7 to 10 years. Arizona legislates none (recorded gap)."
|
|
128
|
+
source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
|
|
129
|
+
folklore_caution: >-
|
|
130
|
+
The "1956 AMA standardization agreement" is COMMONLY REPEATED, UNSOURCED
|
|
131
|
+
(US dossier headline finding 2). The Arizona article does not even offer the
|
|
132
|
+
ALPCA-magazine footnote the Utah, Nevada, Colorado and New Mexico articles
|
|
133
|
+
carry. Arizona's plate size is not in Title 28 at all — § 28-2351 states a
|
|
134
|
+
legibility distance, not a dimension (recorded gap).
|
|
135
|
+
|
|
136
|
+
display_rules:
|
|
137
|
+
default: >-
|
|
138
|
+
ONE plate, rear. § 28-2351: "The department shall provide to every owner one
|
|
139
|
+
license plate for each vehicle registered", with an additional plate
|
|
140
|
+
obtainable on request and payment of a fee. Rear-only has been the Arizona
|
|
141
|
+
rule since 1989 (locator-grade for the year).
|
|
142
|
+
wheelchair_carrier_rule: >-
|
|
143
|
+
§ 28-2354(A)(3) carries a genuinely unusual attachment rule: for a vehicle
|
|
144
|
+
issued two special plates under § 28-2409, "one plate on the rear of the
|
|
145
|
+
vehicle and one plate on the operator's wheelchair carrier or wheelchair
|
|
146
|
+
lift when it is attached to the vehicle". A plate mounted on a removable
|
|
147
|
+
accessory rather than on the vehicle — the display model has to allow it.
|
|
148
|
+
legibility: "§ 28-2351: letters and numerals 'of sufficient size to be plainly readable during daylight from a distance of one hundred feet'"
|
|
149
|
+
contrast_and_state_name: >-
|
|
150
|
+
§ 28-2351, as amended effective 24 September 2022: the background colour
|
|
151
|
+
must contrast significantly with the letters, numerals and state name, and
|
|
152
|
+
"The name of this state shall appear on the license plate in capital letters
|
|
153
|
+
in sans serif font and be three-fourths of an inch in height." This is the
|
|
154
|
+
most typographically prescriptive plate provision found in this group of
|
|
155
|
+
five states, and it prescribes a FONT CLASS rather than a font — consistent
|
|
156
|
+
with PRD-PLATES §6's finding that no surveyed jurisdiction mandates a
|
|
157
|
+
licensable typeface.
|
|
158
|
+
reflectivity: "§ 28-2351: 'The director shall coat the license plate with a reflective material that is consistent with the determination of the department regarding the color and design.'"
|
|
159
|
+
sources:
|
|
160
|
+
- "https://www.azleg.gov/ars/28/02351.htm # § 28-2351 License plate provided; design: one plate per vehicle, additional plate on request, director determines colour and design, reflective coating, 100-foot daylight legibility, and the post-2022 contrast rule and sans-serif three-quarter-inch state name"
|
|
161
|
+
- "https://www.azleg.gov/ars/28/02354.htm # § 28-2354 License plates; attachment; civil penalty — including the wheelchair-carrier placement in (A)(3)"
|
|
162
|
+
- "https://www.azleg.gov/ars/28/02356.htm # § 28-2356 Transfer of license plates to another vehicle; credit — the plate-follows-the-owner mechanism"
|
|
163
|
+
|
|
164
|
+
series:
|
|
165
|
+
|
|
166
|
+
# =========================================================================
|
|
167
|
+
# CURRENT STANDARD ISSUE — the "alphabet soup" generation.
|
|
168
|
+
# =========================================================================
|
|
169
|
+
- id: us-az-standard-2021
|
|
170
|
+
class: standard
|
|
171
|
+
categories: [car, van, truck, bus]
|
|
172
|
+
period: { start: 2021 }
|
|
173
|
+
period_evidence: corroboration-only
|
|
174
|
+
matching: strict
|
|
175
|
+
format:
|
|
176
|
+
pattern: "LLL 9LL"
|
|
177
|
+
regex: '\A[A-Z0-9]{3} ?\d[A-Z0-9]{2}\z'
|
|
178
|
+
charset:
|
|
179
|
+
notes: >-
|
|
180
|
+
NO STATUTORY CONSTRAINT EXISTS. § 28-2351 gives the director colour
|
|
181
|
+
and design and says nothing about serial length or alphabet;
|
|
182
|
+
§ 28-2406 hands the department "the number of positions allowed" on a
|
|
183
|
+
personalized plate. Arizona is therefore the pure delegated case in
|
|
184
|
+
this group — contrast Florida's seven-character statutory cap and
|
|
185
|
+
Colorado's six. The grammar recorded here comes from ADOT's own
|
|
186
|
+
announcement of the 2020 change plus contemporaneous reporting, read
|
|
187
|
+
through a Wikipedia locator: six positions, every one of which may be
|
|
188
|
+
a letter OR a digit, EXCEPT the fourth, which is always a digit; each
|
|
189
|
+
position runs A-Z then 0-9.
|
|
190
|
+
pattern_note: >-
|
|
191
|
+
READ THIS BEFORE USING `pattern`. The human-pattern DSL has exactly two
|
|
192
|
+
tokens, 9 (digit) and L (letter), and Arizona's current serial has
|
|
193
|
+
FIVE POSITIONS THAT ARE NEITHER — they are alphanumeric. `pattern`
|
|
194
|
+
therefore shows ONE REPRESENTATIVE ARRANGEMENT ("ABC 1DE", which is the
|
|
195
|
+
arrangement the locator record itself uses as the exemplar) and the
|
|
196
|
+
REGEX carries the actual grammar. The round-trip still holds, because
|
|
197
|
+
every serial the pattern generates is inside the regex; what does not
|
|
198
|
+
hold is the usual reading that `pattern` describes the alphabet.
|
|
199
|
+
Arizona is the schema stressor for a mixed alphanumeric position and it
|
|
200
|
+
should be cited when `format.fields:` is next discussed.
|
|
201
|
+
progression: >-
|
|
202
|
+
NOT LEXICOGRAPHIC. ADOT introduced a new plate-coding system in June
|
|
203
|
+
2020 replacing one dating from the mid-1980s; the resulting serials were
|
|
204
|
+
reported as "random" but in fact increment in a non-standard order
|
|
205
|
+
(locator records the 2021-onward order as CEA 1DB — that is, positions
|
|
206
|
+
advance in a fixed but non-left-to-right sequence). Consequence for the
|
|
207
|
+
parse API: an Arizona serial's alphabetical position tells you almost
|
|
208
|
+
nothing about its issue date, and any era inference built on ordinary
|
|
209
|
+
odometer logic will be wrong.
|
|
210
|
+
design:
|
|
211
|
+
plate: { w: 12, h: 6, unit: in, w_mm: 304.8, h_mm: 152.4 }
|
|
212
|
+
plate_dimension_note: "NOT IN TITLE 28. Arizona states a legibility distance, not a dimension. The 12x6 figure is the North American convention from the AAMVA/SAE chain and is not attributed to any Arizona instrument (recorded gap)."
|
|
213
|
+
background: { finish: retroreflective }
|
|
214
|
+
material: "reflective coating mandated by § 28-2351; the specific material is 'consistent with the determination of the department' and no departmental material spec was obtained (recorded gap)"
|
|
215
|
+
colour_note: >-
|
|
216
|
+
NO HEX IS CLAIMED. § 28-2351 mandates significant CONTRAST between
|
|
217
|
+
background and characters and leaves every hue to the director. The
|
|
218
|
+
design is described by a Wikipedia LOCATOR as a dark green serial on a
|
|
219
|
+
graphic desert scene — turquoise, white and orange gradient sky, a white
|
|
220
|
+
setting sun, purple mountains in the shape of Four Peaks, and cacti —
|
|
221
|
+
with "ARIZONA" screened in turquoise with white outlines at the top and
|
|
222
|
+
"GRAND CANYON STATE" in dark green below the serial. That is recorded as
|
|
223
|
+
a lead. Given the artwork posture above, an approximated render must be
|
|
224
|
+
deliberately unlike it, not faithfully like it.
|
|
225
|
+
legend_top: "ARIZONA"
|
|
226
|
+
legend_bottom: "GRAND CANYON STATE"
|
|
227
|
+
state_name_typography: "capital letters, sans serif font, three-fourths of an inch high (§ 28-2351, post-24 September 2022) — the only statutory typography in this group"
|
|
228
|
+
graphic: { present: true, rendered: placeholder, description: "desert scene with Four Peaks and saguaro; security threads at plate centre since the 2008 flat-printed generation — locator-grade" }
|
|
229
|
+
emblem: { present: false }
|
|
230
|
+
rear_differs: false
|
|
231
|
+
region_encoding: >-
|
|
232
|
+
NONE. Arizona used county coding historically (the Wikipedia article keeps
|
|
233
|
+
a county-coding section) but no modern Arizona serial encodes geography,
|
|
234
|
+
and the current alphanumeric grammar leaves no positional room for it.
|
|
235
|
+
sources:
|
|
236
|
+
- "https://www.azleg.gov/ars/28/02351.htm # § 28-2351: the absence of any statutory serial constraint, the director's design power, the reflective coating, the contrast rule and the sans-serif state-name height"
|
|
237
|
+
- "https://azdot.gov/adot-news/your-eyes-don%E2%80%99t-deceive-you-new-license-plate-numbers-are-different # ADOT's own June 2020 announcement of the new plate-numbering system. NOT FETCHED — azdot.gov 403s to automated clients behind Cloudflare; pinned as the primary to read on a browser-capable pass, and no wording is attributed to it here."
|
|
238
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arizona # LOCATOR ONLY (PRD-PLATES §4): the February 2021 arrangement change, the six-position alphanumeric grammar with a digit fixed in position four, the non-standard progression order, the AAA 0AA start and the design description. None is asserted as sourced."
|
|
239
|
+
notes: >-
|
|
240
|
+
ARIZONA STANDARD ISSUE, CURRENT GENERATION. THE BASE DESIGN IS OLDER THAN
|
|
241
|
+
THE SERIES: the desert scene dates to 1996 (flat-printed from January
|
|
242
|
+
2008), and 2021 is a SERIAL-GRAMMAR boundary, not a redesign. The id is
|
|
243
|
+
dated because the grammar is what distinguishes the series, and
|
|
244
|
+
`period_evidence: corroboration-only` states plainly that February 2021
|
|
245
|
+
rests on a locator and contemporaneous press, not on an Arizona
|
|
246
|
+
instrument. WHY THIS SERIES IS INTERESTING BEYOND ARIZONA: it is the
|
|
247
|
+
cleanest US example of a state exhausting its serial space and answering
|
|
248
|
+
with an alphabet change rather than a redesign — 999 ZZZ ran out in
|
|
249
|
+
mid-January 2008, ABC1234 ran out by April 2020, and the answer both times
|
|
250
|
+
was more characters or a wider alphabet on the SAME plate.
|
|
251
|
+
|
|
252
|
+
# =========================================================================
|
|
253
|
+
# ONE SERIES BACK.
|
|
254
|
+
# =========================================================================
|
|
255
|
+
- id: us-az-standard-2008
|
|
256
|
+
class: standard
|
|
257
|
+
categories: [car, van, truck, bus]
|
|
258
|
+
period: { start: 2008, end: 2020 }
|
|
259
|
+
period_evidence: corroboration-only
|
|
260
|
+
matching: strict
|
|
261
|
+
format:
|
|
262
|
+
pattern: "LLL9999"
|
|
263
|
+
regex: '\A[A-Z]{3}\d{4}\z'
|
|
264
|
+
charset: { notes: "three letters then four numerals, printed with no separator; no statutory constraint applies, for the same reason as the current series" }
|
|
265
|
+
progression: "sequential from AAA0001 to approximately CWX9999; the CWL0001-CWX9999 block was assigned to rental cars from 2020 (locator-grade)"
|
|
266
|
+
design:
|
|
267
|
+
plate: { w: 12, h: 6, unit: in }
|
|
268
|
+
background: { finish: retroreflective }
|
|
269
|
+
colour_note: "the same 1996 desert-scene base as the current series, with the serial screened rather than embossed and security threads added at the plate centre. No hex claimed."
|
|
270
|
+
legend_top: "ARIZONA"
|
|
271
|
+
legend_bottom: "GRAND CANYON STATE"
|
|
272
|
+
graphic: { present: true, rendered: placeholder }
|
|
273
|
+
region_encoding: none
|
|
274
|
+
sources:
|
|
275
|
+
- "https://www.azleg.gov/ars/28/02351.htm # § 28-2351: the design power under which this arrangement was issued"
|
|
276
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arizona # LOCATOR ONLY: the January 2008 to April 2020 window, the exhaustion of 999 ZZZ in mid-January 2008 reported by The Arizona Republic, and the AAA0001-CWX9999 range"
|
|
277
|
+
notes: >-
|
|
278
|
+
THE PREVIOUS ARRANGEMENT. Recorded partly for its own sake and partly
|
|
279
|
+
because the exhaustion story is documented: contemporaneous reporting
|
|
280
|
+
(The Arizona Republic, 30 April 2008) attributes the seventh character to
|
|
281
|
+
ADOT running out of combinations "when it issued plate 999 ZZZ in
|
|
282
|
+
mid-January". A dated exhaustion event is the most useful kind of era
|
|
283
|
+
evidence a plates dataset can hold, and it is why this series' boundary is
|
|
284
|
+
better attested than most in this group even though it remains
|
|
285
|
+
corroboration-grade.
|
|
286
|
+
|
|
287
|
+
# =========================================================================
|
|
288
|
+
# THE 2020-21 TRANSITIONAL GENERATION — seven positions, recorded because it
|
|
289
|
+
# is short, real, and still on the road.
|
|
290
|
+
# =========================================================================
|
|
291
|
+
- id: us-az-standard-2020-transitional
|
|
292
|
+
class: standard
|
|
293
|
+
categories: [car, van, truck, bus]
|
|
294
|
+
period: { start: 2020, end: 2021 }
|
|
295
|
+
period_evidence: corroboration-only
|
|
296
|
+
matching: recall-only
|
|
297
|
+
format:
|
|
298
|
+
pattern: "LLL9LLL"
|
|
299
|
+
regex: '\A[A-Z0-9]{3}\d[A-Z0-9]{3}\z'
|
|
300
|
+
charset:
|
|
301
|
+
notes: >-
|
|
302
|
+
SEVEN positions, printed without a separator, with the fourth always a
|
|
303
|
+
digit and every other position alphanumeric — the same rule as the
|
|
304
|
+
current six-position grammar, one character longer. The locator record
|
|
305
|
+
says sixty-four arrangements were theoretically available and only
|
|
306
|
+
eight were used; those eight are not individually sourced here, which
|
|
307
|
+
is exactly why this series is `recall-only`: the regex is the union of
|
|
308
|
+
all seven-position strings with a digit in position four, which is
|
|
309
|
+
deliberately wider than the eight arrangements Arizona actually issued.
|
|
310
|
+
design:
|
|
311
|
+
plate: { w: 12, h: 6, unit: in }
|
|
312
|
+
background: { finish: retroreflective }
|
|
313
|
+
colour_note: "the same 1996 desert-scene base; no hex claimed"
|
|
314
|
+
legend_top: "ARIZONA"
|
|
315
|
+
legend_bottom: "GRAND CANYON STATE"
|
|
316
|
+
graphic: { present: true, rendered: placeholder }
|
|
317
|
+
region_encoding: none
|
|
318
|
+
sources:
|
|
319
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Arizona # LOCATOR ONLY: the April 2020 to January 2021 window, the AAA0AAA-SXA6DTA range, the sixty-four-available/eight-used arrangement count, and the ADOT coding-system change behind it"
|
|
320
|
+
- "https://www.azleg.gov/ars/28/02351.htm # § 28-2351: the delegated design power that made an arrangement change possible without legislation"
|
|
321
|
+
notes: >-
|
|
322
|
+
A NINE-MONTH SERIES, KEPT ON PURPOSE. It is the smallest series in this
|
|
323
|
+
group and it earns its place three ways: it is the reason the current
|
|
324
|
+
six-position grammar exists at all; it is still lawfully on the road, so a
|
|
325
|
+
parser meeting a seven-character Arizona serial with a digit in position
|
|
326
|
+
four is not looking at an error; and it is the clearest `recall-only` case
|
|
327
|
+
in the mountain group — a regex written as a union because the members of
|
|
328
|
+
the union were not individually sourced. Contrast us-az-standard-2021,
|
|
329
|
+
whose regex IS the grammar and is therefore strict.
|
|
330
|
+
|
|
331
|
+
# =========================================================================
|
|
332
|
+
# PERSONALIZED.
|
|
333
|
+
# =========================================================================
|
|
334
|
+
- id: us-az-personalized
|
|
335
|
+
class: personalized
|
|
336
|
+
categories: [car, van, truck, motorcycle]
|
|
337
|
+
period: { start: 2026 }
|
|
338
|
+
period_evidence: instrument-in-force-upper-bound
|
|
339
|
+
matching: recall-only
|
|
340
|
+
format:
|
|
341
|
+
pattern: "LLLLLLL"
|
|
342
|
+
regex: '\A[A-Z0-9]+\z'
|
|
343
|
+
charset:
|
|
344
|
+
notes: >-
|
|
345
|
+
§ 28-2406, verbatim on the only point it addresses: "The department
|
|
346
|
+
shall determine the number of positions allowed on the personalized
|
|
347
|
+
special plates." The statute sets NO cap and NO alphabet. The
|
|
348
|
+
departmental determination was not obtained (azdot.gov is unfetchable
|
|
349
|
+
from here), so the regex MAKES NO WIDTH CLAIM — an unbounded
|
|
350
|
+
quantifier, on the same reasoning as us-fl-horseless-carriage's
|
|
351
|
+
'\A\d+\z'. Recording a guessed maximum would be worse than recording
|
|
352
|
+
none.
|
|
353
|
+
refusal_criteria: >-
|
|
354
|
+
§ 28-2406: the department may refuse, suspend, cancel or revoke
|
|
355
|
+
combinations "that carry connotations that are offensive to good taste
|
|
356
|
+
and decency", combinations that are misleading, and duplicates of
|
|
357
|
+
existing plates. The applicant requests; the department decides.
|
|
358
|
+
design:
|
|
359
|
+
plate: { w: 12, h: 6, unit: in }
|
|
360
|
+
background: { finish: retroreflective }
|
|
361
|
+
note: "personalized configurations are offered on the standard base and on special plate designs; which designs accept personalization was not obtained (recorded gap)"
|
|
362
|
+
region_encoding: none
|
|
363
|
+
sources:
|
|
364
|
+
- "https://www.azleg.gov/ars/28/02406.htm # § 28-2406 Personalized special plates: the department determines the number of positions; the good-taste-and-decency, misleading and duplicate refusal grounds; the refuse/suspend/cancel/revoke powers"
|
|
365
|
+
notes: >-
|
|
366
|
+
PERSONALIZED PLATES, and a deliberate demonstration of the
|
|
367
|
+
no-width-claim discipline. Every other state in this group states a
|
|
368
|
+
personalized character range somewhere — Colorado two to seven in statute,
|
|
369
|
+
New Mexico one to eight on the MVD's own page — and Arizona states none at
|
|
370
|
+
any level this pass could reach. The regex says so. PERIOD CAVEAT:
|
|
371
|
+
`start: 2026` is the statute edition read and is an upper bound; Arizona
|
|
372
|
+
has issued personalized plates for decades.
|
|
373
|
+
|
|
374
|
+
# =========================================================================
|
|
375
|
+
# SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5.
|
|
376
|
+
# =========================================================================
|
|
377
|
+
- id: us-az-special-plate-index
|
|
378
|
+
class: specialty
|
|
379
|
+
categories: [car, van, truck, motorcycle]
|
|
380
|
+
period: { start: 2026 }
|
|
381
|
+
period_evidence: instrument-in-force-upper-bound
|
|
382
|
+
matching: recall-only
|
|
383
|
+
format:
|
|
384
|
+
pattern: "LLL 9LL"
|
|
385
|
+
regex: '\A[A-Z0-9]+(?: [A-Z0-9]+)?\z'
|
|
386
|
+
charset: { notes: "special plates carry ordinary serials on an alternative design; because no statutory cap exists and no departmental determination was obtained, no width claim is made and the regex is an explicit recall bound" }
|
|
387
|
+
design:
|
|
388
|
+
plate: { w: 12, h: 6, unit: in }
|
|
389
|
+
background: { finish: retroreflective }
|
|
390
|
+
note: "one design per authorised programme; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here"
|
|
391
|
+
emblem: { present: true, rendered: placeholder }
|
|
392
|
+
program_index:
|
|
393
|
+
count: unresearched
|
|
394
|
+
count_note: >-
|
|
395
|
+
NO COUNT IS ASSERTED. Arizona's specialty catalogue lives on azdot.gov,
|
|
396
|
+
which returned HTTP 403 behind a Cloudflare challenge to every automated
|
|
397
|
+
client attempted, and has no Internet Archive capture under the paths
|
|
398
|
+
tried. Rather than launder a figure out of a collector site or an
|
|
399
|
+
encyclopedia, the count is recorded as UNRESEARCHED with the official
|
|
400
|
+
URLs pinned for a browser-capable pass. This is the same discipline that
|
|
401
|
+
made Florida's contested "over 100 vs over 120" worth recording: an
|
|
402
|
+
honest absence beats a sourced-looking number.
|
|
403
|
+
official_list_url: "https://azdot.gov/motor-vehicles/vehicle-services/license-plates"
|
|
404
|
+
statutory_frame: >-
|
|
405
|
+
Arizona authorises special plates BY STATUTE, in Title 28, Chapter 7,
|
|
406
|
+
Article 12 (§ 28-2401 onward), which is why the catalogue can eventually
|
|
407
|
+
be enumerated from the code rather than from a web page. § 28-2401
|
|
408
|
+
supplies the article's definitions — "special plates" means "plates
|
|
409
|
+
issued pursuant to this article", and "immediate family member" means "a
|
|
410
|
+
spouse or a parent, child, brother or sister whether by adoption or
|
|
411
|
+
blood", the latter mattering because several Arizona special plates pass
|
|
412
|
+
to family. § 28-2402 governs special plate fees; § 28-2403 governs
|
|
413
|
+
transfers and makes a violation a criminal classification; § 28-2406 is
|
|
414
|
+
the personalized-plate section modelled separately above.
|
|
415
|
+
fees_note: "§ 28-2402 (Special plate fees) and § 28-2353 (Special license plate replacement fee) were identified but their figures were not extracted in this pass (recorded gap)."
|
|
416
|
+
region_encoding: none
|
|
417
|
+
sources:
|
|
418
|
+
- "https://www.azleg.gov/arsDetail/?title=28 # the Title 28 section index from which Article 11 (28-2351 to 28-2356) and Article 12 (28-2401 onward) were read"
|
|
419
|
+
- "https://www.azleg.gov/ars/28/02401.htm # § 28-2401 Definitions: 'special plates' means plates issued pursuant to this article; the immediate-family-member definition"
|
|
420
|
+
- "https://azdot.gov/motor-vehicles/vehicle-services/license-plates # ADOT MVD's own plate index — PINNED BUT NOT FETCHED (403, Cloudflare). No claim in this entry rests on it."
|
|
421
|
+
notes: >-
|
|
422
|
+
THE SPECIAL-PLATE PROGRAM INDEX — one entry for the whole programme, per
|
|
423
|
+
PRD-PLATES §2.5. IT IS DELIBERATELY THIN, and the thinness is the finding:
|
|
424
|
+
Arizona is the only state in the mountain group whose issuing agency could
|
|
425
|
+
not be reached at all. Everything in this file that is stated as fact came
|
|
426
|
+
from azleg.gov (the legislature) or from an archived Secretary of State
|
|
427
|
+
policy page; everything ADOT would have supplied — the specialty count,
|
|
428
|
+
the personalized character limit, the departmental colour and material
|
|
429
|
+
specifications, the plate-belongs-to-the-owner statement — is recorded as
|
|
430
|
+
a gap with its URL pinned. A future pass with a browser should start here.
|