vehicles 0.4.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +321 -0
- data/README.md +88 -15
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +10 -0
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/es-provinces.yml +116 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +26 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +1107 -0
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +888 -0
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +1016 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +741 -0
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +18 -2
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +42 -6
- data/lib/vehicles/plates/jurisdiction.rb +32 -0
- data/lib/vehicles/plates/series.rb +291 -0
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +122 -0
- data/lib/vehicles/providers/hosted_provider.rb +49 -58
- data/lib/vehicles/providers/local_provider.rb +4 -3
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +53 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +174 -2
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
# plates/us-or.yml — Oregon (PRD-PLATES gate L2, northwest group).
|
|
2
|
+
#
|
|
3
|
+
# THE ONE FACT THAT MAKES OREGON WORTH READING CAREFULLY. ORS 803.535 does not
|
|
4
|
+
# describe the plate. It POINTS AT A DESIGN CONTEST: "The design of the
|
|
5
|
+
# registration plates shall be that chosen by the commission from entries in
|
|
6
|
+
# the contest held pursuant to chapter 572, Oregon Laws 1987." That is a
|
|
7
|
+
# statutory instrument with a date, and it is the only era anchor in this
|
|
8
|
+
# entire group that comes from the design provision itself rather than from a
|
|
9
|
+
# collector table. Every other American state surveyed either fixes the design
|
|
10
|
+
# in the statute (Montana, Wyoming, Florida) or delegates it wholesale to the
|
|
11
|
+
# agency (Washington). Oregon does neither: it delegates the design to a
|
|
12
|
+
# one-off 1987 public competition and then FREEZES THE RESULT IN LAW. The
|
|
13
|
+
# Douglas-fir-and-mountains plate on the road today is, legally, the winning
|
|
14
|
+
# entry of that contest, and it cannot change without amending ORS 803.535.
|
|
15
|
+
#
|
|
16
|
+
# CONSEQUENCE FOR PERIOD MODELLING: 1987 is a real, instrument-anchored LOWER
|
|
17
|
+
# bound on the current base — plates cannot predate the contest that chose
|
|
18
|
+
# them. The commonly repeated November 1989 first-issue date is
|
|
19
|
+
# encyclopedia-grade and is recorded as such, never asserted. This is exactly
|
|
20
|
+
# the discipline PRD-PLATES §9 asks for: primary-source-or-marked.
|
|
21
|
+
#
|
|
22
|
+
# SOURCE-ACCESS NOTE, RECORDED HONESTLY. www.oregonlegislature.gov refused TLS
|
|
23
|
+
# from this environment on every attempt (curl exit 35, WebFetch ECONNRESET).
|
|
24
|
+
# The ORS text below was therefore read from oregon.public.law, a third-party
|
|
25
|
+
# reproduction. Oregon statutes are EDICTS OF GOVERNMENT and public domain at
|
|
26
|
+
# every level (PRD-PLATES §4), so the reproduction carries the same text with
|
|
27
|
+
# the same PD status — but the OFFICIAL citation is given first in every
|
|
28
|
+
# source line, and re-verification against oregonlegislature.gov is an open
|
|
29
|
+
# item for the verifier.
|
|
30
|
+
jurisdiction: us-or
|
|
31
|
+
authority:
|
|
32
|
+
name: Oregon Driver and Motor Vehicle Services (Oregon DMV), Oregon Department of Transportation
|
|
33
|
+
url: "https://www.oregon.gov/odot/DMV/pages/vehicle/plates.aspx"
|
|
34
|
+
binding: vehicle
|
|
35
|
+
statute_edition: >-
|
|
36
|
+
Oregon Revised Statutes, Chapter 803 (Vehicle Title and Registration), read
|
|
37
|
+
2026-08-02 via oregon.public.law because oregonlegislature.gov was
|
|
38
|
+
TLS-unreachable from this environment. Sections read: 803.525, 803.535,
|
|
39
|
+
803.540.
|
|
40
|
+
|
|
41
|
+
# ---------------------------------------------------------------------------
|
|
42
|
+
# artwork_risk — required per jurisdiction by PRD-PLATES §4/§7.1.
|
|
43
|
+
# ---------------------------------------------------------------------------
|
|
44
|
+
artwork_risk:
|
|
45
|
+
posture: asserted-trademark-copyright-unresearched
|
|
46
|
+
basis: >-
|
|
47
|
+
OREGON IS NOT ON EITHER SIDE OF THE SURVEYED LEDGER, AND SAYING SO IS THE
|
|
48
|
+
HONEST ANSWER. Oregon appears NOWHERE in the standing per-state copyright
|
|
49
|
+
survey PRD-PLATES §4 works from — it is neither in the favourable column
|
|
50
|
+
(FL, CA, NC, NJ, MA, GA) nor in the adverse column (NY, AZ, PA, WA) — and
|
|
51
|
+
no {{PD-ORGov}} tag exists on Wikimedia Commons. So the DEFAULT applies:
|
|
52
|
+
a US state's works are copyrighted unless that state says otherwise
|
|
53
|
+
(17 U.S.C. §105 covers federal works only and does not extend to states).
|
|
54
|
+
What Oregon DOES say, in its own portal terms and conditions, is a
|
|
55
|
+
TRADEMARK assertion with a permission condition attached: "You may display
|
|
56
|
+
these Oregon-owned trademarks so long as the context of your use is
|
|
57
|
+
truthful and not misleading about the either services provided under that
|
|
58
|
+
trademark or the trademark's ownership." The same page runs a DMCA
|
|
59
|
+
takedown channel (egov.copyright@das.oregon.gov), which presupposes that
|
|
60
|
+
the state expects copyright claims to be actionable on its estate. Neither
|
|
61
|
+
statement is about PLATE ARTWORK specifically, and no Oregon case,
|
|
62
|
+
statute or agency policy addressing plate design ownership was located.
|
|
63
|
+
Recorded as ASSERTED ON TRADEMARK, COPYRIGHT UNRESEARCHED — not as
|
|
64
|
+
adverse, which would overclaim, and not as unresearched, which would
|
|
65
|
+
ignore the fetched assertion.
|
|
66
|
+
emblem_rule: >-
|
|
67
|
+
PRD-PLATES §3's placeholder default applies to the Douglas fir, the
|
|
68
|
+
mountain silhouette and every special-background graphic. Note the
|
|
69
|
+
additional Oregon-specific hazard: ORS 803.535 makes the design the
|
|
70
|
+
winning entry of a 1987 PUBLIC CONTEST, which means an identifiable
|
|
71
|
+
PRIVATE AUTHOR drew it. Whether the contest terms assigned copyright to
|
|
72
|
+
the state is unknown and unresearched, and it is a real question rather
|
|
73
|
+
than a theoretical one. Render placeholder.
|
|
74
|
+
photograph_caution: >-
|
|
75
|
+
Standard: a CC BY-SA tag on a Commons photograph of an Oregon plate is the
|
|
76
|
+
photographer's licence on the photograph, not a licence on the design. Our
|
|
77
|
+
renders are generated from spec, so the obligation never attaches.
|
|
78
|
+
sources:
|
|
79
|
+
- "https://www.oregon.gov/pages/terms-and-conditions.aspx # State of Oregon terms: the Oregon-owned-trademark display condition, quoted above, and the DMCA notice channel"
|
|
80
|
+
- "https://www.oregonlegislature.gov/bills_laws/ors/ors803.html # ORS 803.535 — the design provision itself, an edict of government and public domain; read via oregon.public.law (official host TLS-unreachable)"
|
|
81
|
+
- "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR ONLY: Oregon is NOT MENTIONED — a measured absence, which is why the posture is not 'favourable'"
|
|
82
|
+
- "https://commons.wikimedia.org/wiki/Commons:Copyright_rules_by_territory/United_States # LOCATOR ONLY: no Oregon state PD template exists among those listed"
|
|
83
|
+
|
|
84
|
+
# ---------------------------------------------------------------------------
|
|
85
|
+
# The US standards chain. Voluntary; no federal mandate; J686 never quoted.
|
|
86
|
+
# ---------------------------------------------------------------------------
|
|
87
|
+
us_standards:
|
|
88
|
+
no_federal_mandate: true
|
|
89
|
+
chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption."
|
|
90
|
+
aamva_edition_3:
|
|
91
|
+
dimensions_delegated: "AAMVA §3.1 delegates dimensions and bolt holes to SAE J686, whose text is paywalled and UNPINNED. No J686 dimension is quoted here. Oregon law states no dimension either — ORS 803.535 leaves 'size, form and arrangement' to the department."
|
|
92
|
+
character_layout: "AAMVA §2.2: characters at least 2.5 in high, spacing at least 0.25 in, stroke weight 0.2-0.4 in, 1.25 in clear of top and bottom"
|
|
93
|
+
retroreflectivity: "AAMVA §3.3: readable in daylight and at night from at least 75 feet; ASTM D4956-19 and ISO 7591:1982 clause 3. Oregon legislates the REQUIREMENT ('a fully reflectorized safety plate') without the metric."
|
|
94
|
+
replacement_cycle: "AAMVA §1.1 recommends a cycle 'not to exceed 7 to 10 years'. No Oregon replacement clock was located in ORS 803 (recorded gap)."
|
|
95
|
+
source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
|
|
96
|
+
folklore_caution: "The 1956 AMA standardization story is COMMONLY REPEATED, UNSOURCED (a `citation needed` since 2017, copied across articles). Oregon states no dimension in law, so nothing here depends on it."
|
|
97
|
+
|
|
98
|
+
# ---------------------------------------------------------------------------
|
|
99
|
+
# Display rules.
|
|
100
|
+
# ---------------------------------------------------------------------------
|
|
101
|
+
display_rules:
|
|
102
|
+
default: "TWO plates. ORS 803.525: 'The Department of Transportation shall issue two registration plates for every vehicle that is registered by the department except as otherwise provided in this section or ORS 803.530.'"
|
|
103
|
+
one_plate_vehicles: "ORS 803.525: 'Only one registration plate shall be issued' for a moped, motorcycle, trailer, antique vehicle or vehicle of special interest. A camper also receives one plate, and 'Stickers may be issued in lieu of a plate' for a camper."
|
|
104
|
+
mounting: "ORS 803.540: plates 'must be displayed on the front and rear of the vehicle if two plates are required'; on the rear only if one is required; and 'The plates must be in plain view and so as to be read easily by the public.' Oregon DMV's own plate page states the placement more concretely: 'One plate is for the foremost point of the front of the vehicle and the other is for the rearmost point of the back of the vehicle.'"
|
|
105
|
+
frames_and_alteration: "Oregon DMV, in its own words: you cannot 'Alter your plates' or 'Have a frame that covers the numbers, letters, or tags/stickers.'"
|
|
106
|
+
penalty: "ORS 803.540: violation is a CLASS D TRAFFIC VIOLATION — the lowest tier, and worth recording because the equivalent Florida offence is a nonmoving infraction and the Washington one carries a $500 transfer penalty. US display penalties are not comparable across states."
|
|
107
|
+
exceptions: "ORS 803.540 exempts operators running on temporary permits, dealer permits, or proportionally registered commercial vehicles operating in compliance with those authorisations."
|
|
108
|
+
sources:
|
|
109
|
+
- "https://www.oregonlegislature.gov/bills_laws/ors/ors803.html # ORS 803.525 two-plate default and the one-plate list; ORS 803.540 display, plain view, Class D traffic violation, permit exceptions. Read via oregon.public.law (official host TLS-unreachable)."
|
|
110
|
+
- "https://www.oregon.gov/odot/DMV/pages/vehicle/plates.aspx # Oregon DMV: the foremost-point/rearmost-point placement wording and the alteration/frame prohibitions"
|
|
111
|
+
|
|
112
|
+
series:
|
|
113
|
+
|
|
114
|
+
# =========================================================================
|
|
115
|
+
# THE CURRENT STANDARD-ISSUE SERIES — numeral-leading arrangement on the
|
|
116
|
+
# statutory 1987-contest base.
|
|
117
|
+
# =========================================================================
|
|
118
|
+
- id: us-or-standard
|
|
119
|
+
class: standard
|
|
120
|
+
categories: [car, van, truck, bus]
|
|
121
|
+
period: { start: 2026 }
|
|
122
|
+
period_evidence: instrument-in-force-upper-bound
|
|
123
|
+
matching: strict
|
|
124
|
+
format:
|
|
125
|
+
pattern: "999 LLL"
|
|
126
|
+
regex: '\A\d{3}[- ]?[A-Z]{3}\z'
|
|
127
|
+
charset:
|
|
128
|
+
notes: >-
|
|
129
|
+
NO CHARSET RULE IN THE STATUTE. ORS 803.535 requires only that "All
|
|
130
|
+
plates shall contain the distinctive number or characters assigned
|
|
131
|
+
to the vehicle and the word 'Oregon.'" No alphabet, no exclusions,
|
|
132
|
+
no length. The reported exclusions — the A block skipped since the
|
|
133
|
+
1950s to avoid collision with the optional Oregon Trail plates, and
|
|
134
|
+
the I and O blocks skipped since 2004 for confusion with the
|
|
135
|
+
numerals 1 and 0 — are LOCATOR-GRADE and are deliberately NOT
|
|
136
|
+
encoded as a `regex_strict`, which PRD-PLATES §2.7 reserves for the
|
|
137
|
+
authority's own alphabet.
|
|
138
|
+
pattern_note: >-
|
|
139
|
+
The group boundary is written as the separator-only class `[- ]`,
|
|
140
|
+
sanctioned by PRD-PLATES §2.8, because Oregon prints a GAP (not a
|
|
141
|
+
glyph) and no authority text names a separator character; `pattern`
|
|
142
|
+
shows the canonical printed form with a space. There is no
|
|
143
|
+
`regex_statutory`: ORS 803.535 states no outer bound to encode, which
|
|
144
|
+
is itself the finding.
|
|
145
|
+
progression: >-
|
|
146
|
+
LOCATOR-GRADE, NOT ASSERTED: the encyclopedia record reports the
|
|
147
|
+
numeral-leading block running from 001 BAA and reaching the R block by
|
|
148
|
+
mid-2026. No ODOT publication of serial ranges was located.
|
|
149
|
+
design:
|
|
150
|
+
plate: { w: 12, h: 6, unit: in, dimension_basis: convention-observed }
|
|
151
|
+
dimension_note: "NOT STATUTORY. ORS 803.535: 'Registration plates shall be in the size, form and arrangement and made of materials determined by the department.' 12 x 6 in is the North American convention as observed; the AAMVA chain delegates the dimension to the unpinned SAE J686."
|
|
152
|
+
material_rule: "ORS 803.535, verbatim: 'All plates shall be made with a reflective material, so as to be a fully reflectorized safety plate.'"
|
|
153
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
154
|
+
foreground_note: >-
|
|
155
|
+
DARK BLUE CHARACTERS, HEX UNMEASURED AND NOT INVENTED. ORS 803.535
|
|
156
|
+
states no colour at all. Rather than fabricate a hex from a JPEG the
|
|
157
|
+
colour is named with `hex_basis: unmeasured`.
|
|
158
|
+
legend_top: "Oregon"
|
|
159
|
+
legend_rule: "ORS 803.535, verbatim: 'All plates shall contain the distinctive number or characters assigned to the vehicle and the word \"Oregon.\"' That is the whole legend rule — Oregon mandates the state name and nothing else, no slogan, no county."
|
|
160
|
+
graphic: { present: true, rendered: placeholder, description: "Douglas fir at left against a mountain silhouette and sky — the winning entry of the ORS 803.535 design contest. Observed from ODOT plate imagery; the statutory text describes NO graphic, only that the design is the contest winner." }
|
|
161
|
+
emblem: { present: true, rendered: placeholder }
|
|
162
|
+
design_origin:
|
|
163
|
+
statutory_text: "ORS 803.535, verbatim: 'The design of the registration plates shall be that chosen by the commission from entries in the contest held pursuant to chapter 572, Oregon Laws 1987.'"
|
|
164
|
+
note: >-
|
|
165
|
+
THE MOST UNUSUAL DESIGN PROVISION IN THE GROUP. Oregon does not
|
|
166
|
+
describe its plate in law and does not delegate the design to the
|
|
167
|
+
department either: it incorporates by reference the winner of a
|
|
168
|
+
1987 public competition. Three consequences a dataset should carry.
|
|
169
|
+
(1) The base cannot legally change without amending ORS 803.535 —
|
|
170
|
+
which is why Oregon's plate has looked the same for a generation
|
|
171
|
+
while neighbours redesigned. (2) 1987 is an instrument-anchored
|
|
172
|
+
LOWER bound on first issue. (3) There is an identifiable private
|
|
173
|
+
author, which is an artwork_risk input, not a curiosity.
|
|
174
|
+
paired_plate_rule: "ORS 803.535: 'When a pair of registration plates is issued, each plate shall bear the same identification as the other plate of the pair.' Front and rear are identical — `rear_differs: false` is sourced here, not assumed."
|
|
175
|
+
identification_rule: "ORS 803.535: 'Means shall be provided for identifying the vehicle from the front and rear by means of characters or numerals.'"
|
|
176
|
+
rear_differs: false
|
|
177
|
+
region_encoding: "none. Oregon plates carry no county or district code and no geographic marker; the only geography on the plate is the depicted landscape, which encodes nothing."
|
|
178
|
+
sources:
|
|
179
|
+
- "https://www.oregonlegislature.gov/bills_laws/ors/ors803.html # ORS 803.535: the 1987 contest design provision, the fully-reflectorized-safety-plate requirement, the 'distinctive number or characters ... and the word Oregon' legend rule, the size/form/arrangement delegation, and the identical-pair rule. Read via oregon.public.law (official host TLS-unreachable)."
|
|
180
|
+
- "https://www.oregon.gov/odot/DMV/pages/vehicle/plates.aspx # Oregon DMV's own plate estate: plate-option structure, the special-background fee chart pointer, and the plate imagery the observed colours are taken from"
|
|
181
|
+
- "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf # AAMVA Ed.3 §2.2/§3.3 layout and retroreflectivity, adopted voluntarily; Oregon legislates the requirement without the metric"
|
|
182
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Oregon # LOCATOR ONLY (PRD-PLATES §4): the reported February 2004 arrangement change, the reported serial ranges, and the reported A/I/O block exclusions. None is asserted as sourced here."
|
|
183
|
+
notes: >-
|
|
184
|
+
OREGON STANDARD ISSUE, NUMERAL-LEADING. THE ID IS DELIBERATELY UNDATED
|
|
185
|
+
for the us-fl-standard reason: `start: 2026` is the year the ORS was
|
|
186
|
+
read and is an UPPER BOUND on the true start. The reported changeover to
|
|
187
|
+
the numeral-leading arrangement in February 2004 is encyclopedia-grade
|
|
188
|
+
and is NOT minted into the id. THE POINT TO CARRY: in Oregon the BASE
|
|
189
|
+
DESIGN and the SERIAL ARRANGEMENT have different lifetimes — the design
|
|
190
|
+
is frozen by ORS 803.535 since the 1987 contest, while the arrangement
|
|
191
|
+
flipped from letters-first to numerals-first when the letter blocks ran
|
|
192
|
+
out. A schema that treats "base" and "format" as one thing cannot model
|
|
193
|
+
Oregon. Distinct from us-or-standard-letters-first in that this series
|
|
194
|
+
is open and numeral-leading.
|
|
195
|
+
|
|
196
|
+
# =========================================================================
|
|
197
|
+
# ONE SERIES BACK — same statutory base, opposite arrangement.
|
|
198
|
+
# =========================================================================
|
|
199
|
+
- id: us-or-standard-letters-first
|
|
200
|
+
class: standard
|
|
201
|
+
categories: [car, van, truck, bus]
|
|
202
|
+
period: { start: 1987, end: 2004 }
|
|
203
|
+
period_evidence: statutory-instrument-date-start-locator-end
|
|
204
|
+
period_caveat: >-
|
|
205
|
+
MIXED EVIDENCE, AND THE HALVES ARE NOT EQUAL. The START (1987) is
|
|
206
|
+
instrument-anchored: ORS 803.535 makes the design the winner of the
|
|
207
|
+
contest held pursuant to chapter 572, Oregon Laws 1987, so no plate on
|
|
208
|
+
this base can predate 1987. It is a LOWER bound on first issue, and the
|
|
209
|
+
commonly repeated November 1989 first-issue date is encyclopedia-grade
|
|
210
|
+
and is NOT asserted. The END (2004) is locator-only and NOT a sourced
|
|
211
|
+
claim; no ODOT instrument stating the arrangement changeover was
|
|
212
|
+
located. A verifier should pin the changeover to an ODOT publication or
|
|
213
|
+
downgrade the end to `ended: true` with no year.
|
|
214
|
+
matching: strict
|
|
215
|
+
format:
|
|
216
|
+
pattern: "LLL 999"
|
|
217
|
+
regex: '\A[A-Z]{3}[- ]?\d{3}\z'
|
|
218
|
+
charset: { notes: "as for us-or-standard: ORS 803.535 states no alphabet. The reported A-block skip dates from the 1950s and is locator-grade." }
|
|
219
|
+
design:
|
|
220
|
+
plate: { w: 12, h: 6, unit: in, dimension_basis: convention-observed }
|
|
221
|
+
material_rule: "ORS 803.535: 'a fully reflectorized safety plate'"
|
|
222
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
223
|
+
foreground_note: "dark blue characters; hex unmeasured, not invented"
|
|
224
|
+
legend_top: "Oregon"
|
|
225
|
+
graphic: { present: true, rendered: placeholder, description: "the same ORS 803.535 contest-winning Douglas fir and mountain design — this series differs from the current one in ARRANGEMENT, not in base" }
|
|
226
|
+
emblem: { present: true, rendered: placeholder }
|
|
227
|
+
rear_differs: false
|
|
228
|
+
region_encoding: none
|
|
229
|
+
sources:
|
|
230
|
+
- "https://www.oregonlegislature.gov/bills_laws/ors/ors803.html # ORS 803.535 — the same design provision governs this series; the base did not change, only the serial arrangement"
|
|
231
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Oregon # LOCATOR ONLY: the letters-first arrangement and the reported February 2004 end. The end year is not asserted as sourced."
|
|
232
|
+
notes: >-
|
|
233
|
+
THE PREVIOUS OREGON ARRANGEMENT, ON THE SAME STATUTORY BASE. Modelled as
|
|
234
|
+
its own series because PRD-PLATES §2.3's test is format OR design OR
|
|
235
|
+
period, and the FORMAT differs. A parser needs both: an Oregon plate of
|
|
236
|
+
unknown vintage on the fir base is either LLL 999 or 999 LLL. Distinct
|
|
237
|
+
from us-or-standard in that this series is closed and letter-leading
|
|
238
|
+
while the current one is open and numeral-leading; the DESIGN is
|
|
239
|
+
identical and that is the interesting part.
|
|
240
|
+
|
|
241
|
+
# =========================================================================
|
|
242
|
+
# CORE DISTINCT CLASSES. Oregon separately serializes these — ORS 803.525
|
|
243
|
+
# sources the PLATE COUNT for each, which is a real primary claim, while the
|
|
244
|
+
# serial grammars are locator-grade, hence `recall-only` with widened
|
|
245
|
+
# regexes per PRD-PLATES §2.7.
|
|
246
|
+
# =========================================================================
|
|
247
|
+
- id: us-or-trailer
|
|
248
|
+
class: trailer
|
|
249
|
+
categories: [trailer]
|
|
250
|
+
period: { start: 2026 }
|
|
251
|
+
period_evidence: instrument-in-force-upper-bound
|
|
252
|
+
matching: recall-only
|
|
253
|
+
format:
|
|
254
|
+
pattern: "L999999"
|
|
255
|
+
regex: '\A[A-Z]\d{4,6}\z'
|
|
256
|
+
charset:
|
|
257
|
+
notes: >-
|
|
258
|
+
ORS 803.525 sources only that a trailer receives ONE plate. The
|
|
259
|
+
letter-then-numerals shape (reported as a U prefix) is
|
|
260
|
+
encyclopedia-grade; the numeral count is widened so that a match
|
|
261
|
+
claims a SHAPE and not a grammar.
|
|
262
|
+
design:
|
|
263
|
+
plate: { w: 12, h: 6, unit: in, dimension_basis: convention-observed }
|
|
264
|
+
material_rule: "ORS 803.535 applies to all plates: 'a fully reflectorized safety plate'"
|
|
265
|
+
background: { finish: retroreflective }
|
|
266
|
+
graphic: { present: true, rendered: placeholder, description: "reported to carry the same fir base as the passenger plate" }
|
|
267
|
+
emblem: { present: true, rendered: placeholder }
|
|
268
|
+
region_encoding: none
|
|
269
|
+
sources:
|
|
270
|
+
- "https://www.oregonlegislature.gov/bills_laws/ors/ors803.html # ORS 803.525: 'Only one registration plate shall be issued' for a trailer; ORS 803.535: the reflectorization and 'word Oregon' rules apply to all plates"
|
|
271
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Oregon # LOCATOR ONLY: the reported U-prefixed trailer serial shape"
|
|
272
|
+
notes: >-
|
|
273
|
+
TRAILER. `recall-only` is the honest description, not a hedge: the plate
|
|
274
|
+
COUNT is statutory, the serial shape is not. Oregon groups trailers with
|
|
275
|
+
mopeds, motorcycles, campers, antiques and special-interest vehicles in
|
|
276
|
+
one statutory one-plate list, which is a cleaner rule than most states
|
|
277
|
+
manage.
|
|
278
|
+
|
|
279
|
+
- id: us-or-government-exempt
|
|
280
|
+
class: government
|
|
281
|
+
categories: [car, van, truck, bus]
|
|
282
|
+
period: { start: 2026 }
|
|
283
|
+
period_evidence: instrument-in-force-upper-bound
|
|
284
|
+
matching: recall-only
|
|
285
|
+
format:
|
|
286
|
+
pattern: "L999999"
|
|
287
|
+
regex: '\A[A-Z]\d{4,6}\z'
|
|
288
|
+
charset: { notes: "reported E-prefixed exempt series; letter-then-numerals shape is encyclopedia-grade and the numeral count is widened accordingly" }
|
|
289
|
+
design:
|
|
290
|
+
plate: { w: 12, h: 6, unit: in, dimension_basis: convention-observed }
|
|
291
|
+
background: { finish: retroreflective }
|
|
292
|
+
colour_note: "reported blue on gold — the pre-1989 Oregon colourway retained for exempt plates, i.e. an OLD BASE STILL IN ISSUE. Recorded because it is exactly the parallel-series case PRD-PLATES §2.2 warns about, but the claim is locator-grade."
|
|
293
|
+
emblem: { present: true, rendered: placeholder }
|
|
294
|
+
region_encoding: none
|
|
295
|
+
sources:
|
|
296
|
+
- "https://www.oregonlegislature.gov/bills_laws/ors/ors803.html # ORS 803.535: the design, reflectorization and legend rules apply to registration plates generally"
|
|
297
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Oregon # LOCATOR ONLY: the reported E-prefixed exempt series and its blue-on-gold colourway"
|
|
298
|
+
notes: >-
|
|
299
|
+
GOVERNMENT / EXEMPT. Modelled because Oregon separately serializes it
|
|
300
|
+
and because the reported colourway is the pre-1989 scheme — a live
|
|
301
|
+
example of a superseded base surviving inside a non-standard class. The
|
|
302
|
+
claim is locator-grade throughout, hence `recall-only`; no ODOT
|
|
303
|
+
instrument for the exempt series was located.
|
|
304
|
+
|
|
305
|
+
# =========================================================================
|
|
306
|
+
# SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5. Count and official
|
|
307
|
+
# links only; no individual designs (those are L4).
|
|
308
|
+
# =========================================================================
|
|
309
|
+
- id: us-or-specialty-index
|
|
310
|
+
class: specialty
|
|
311
|
+
categories: [car, van, truck, motorcycle]
|
|
312
|
+
period: { start: 2026 }
|
|
313
|
+
period_evidence: instrument-in-force-upper-bound
|
|
314
|
+
matching: recall-only
|
|
315
|
+
format:
|
|
316
|
+
pattern: "999 LLL"
|
|
317
|
+
regex: '\A[A-Z0-9](?: ?[A-Z0-9]){0,6}\z'
|
|
318
|
+
charset:
|
|
319
|
+
notes: >-
|
|
320
|
+
Oregon calls these SPECIAL BACKGROUND plates, and the name is the
|
|
321
|
+
model: the serial arrangement is the ordinary one and only the
|
|
322
|
+
background changes. Because per-programme grammars were not sourced
|
|
323
|
+
(individual specialty specs are L4 per PRD-PLATES §2.5), the index
|
|
324
|
+
carries a deliberately wide union and is `recall-only`.
|
|
325
|
+
design:
|
|
326
|
+
plate: { w: 12, h: 6, unit: in, dimension_basis: convention-observed }
|
|
327
|
+
background: { finish: retroreflective }
|
|
328
|
+
note: "one background per authorised programme; the designs themselves are L4 scope and none is described here"
|
|
329
|
+
emblem: { present: true, rendered: placeholder }
|
|
330
|
+
program_index:
|
|
331
|
+
count_official: unstated
|
|
332
|
+
count_official_note: >-
|
|
333
|
+
NO OFFICIAL TOTAL IS PUBLISHED, AND THAT IS THE FINDING. Oregon DMV's
|
|
334
|
+
plate estate routes the user to a "Special Background Fees Chart" and
|
|
335
|
+
to "View your plate options" rather than to a counted catalogue, and
|
|
336
|
+
neither yields a number. Recorded as UNSTATED rather than filled in
|
|
337
|
+
from a secondary source. The encyclopedia record reports 20-plus
|
|
338
|
+
optional designs; that figure is LOCATOR-GRADE and is not adopted.
|
|
339
|
+
creation_route: >-
|
|
340
|
+
THE STRUCTURAL FACT THAT MATTERS MORE THAN THE COUNT. Oregon DMV, in
|
|
341
|
+
its own words: "Public bodies, non-profit organizations, institutes of
|
|
342
|
+
higher education, and veteran groups can apply to create a new Oregon
|
|
343
|
+
license plate", by two distinct routes — "Apply to create a new
|
|
344
|
+
special background plate" and "Apply to create a new veteran plate."
|
|
345
|
+
Oregon's catalogue is therefore APPLICANT-DRIVEN and open-ended,
|
|
346
|
+
which is the opposite of Washington's, where RCW 46.18.200(6) freezes
|
|
347
|
+
new issuance until 1 January 2029. Two neighbouring states, two
|
|
348
|
+
opposite programme architectures — this is the sort of contrast the
|
|
349
|
+
encyclopedia section exists to show.
|
|
350
|
+
official_plate_page_url: "https://www.oregon.gov/odot/DMV/pages/vehicle/plates.aspx"
|
|
351
|
+
fee_chart_note: "Oregon publishes a 'Special Background Fees Chart' as the authoritative per-programme fee list; it was not machine-read in this pass and is the natural source for an exact programme count (recorded gap)."
|
|
352
|
+
application_form_note: "DMV Form 268, 'Application for Registration, Renewal, Replacement or Transfer of Plates and/or Stickers', is the single form that carries the special-background election — one form, not one per programme."
|
|
353
|
+
region_encoding: none
|
|
354
|
+
sources:
|
|
355
|
+
- "https://www.oregon.gov/odot/DMV/pages/vehicle/plates.aspx # Oregon DMV: the special-background structure, the two creation routes (special background plate / veteran plate) and the eligible applicant classes, the Special Background Fees Chart pointer, and Form 268"
|
|
356
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Oregon # LOCATOR ONLY: the reported 20-plus optional designs. NOT adopted as the count."
|
|
357
|
+
notes: >-
|
|
358
|
+
THE OREGON SPECIALTY INDEX — one entry standing for the whole programme,
|
|
359
|
+
per PRD-PLATES §2.5. The honest headline is a NEGATIVE result: Oregon
|
|
360
|
+
publishes no programme count. Recording "unstated" with the reason beats
|
|
361
|
+
importing a number from an encyclopedia, and the Special Background Fees
|
|
362
|
+
Chart is the identified path to a real figure next pass.
|
|
363
|
+
|
|
364
|
+
# ---------------------------------------------------------------------------
|
|
365
|
+
# Classes Oregon separately serializes but which are NOT given series here,
|
|
366
|
+
# because no format was sourced and this dataset does not invent grammars.
|
|
367
|
+
# ---------------------------------------------------------------------------
|
|
368
|
+
unspecified_classes:
|
|
369
|
+
motorcycle:
|
|
370
|
+
statutory_hook: "ORS 803.525: 'Only one registration plate shall be issued' for a motorcycle or moped."
|
|
371
|
+
gap: "no motorcycle serial grammar sourced; the encyclopedia record's reported shape was too garbled to widen honestly"
|
|
372
|
+
dealer:
|
|
373
|
+
statutory_hook: "ORS 803.540 exempts vehicles operating under DEALER PERMITS from the ordinary display rule, so dealer issuance exists in statute."
|
|
374
|
+
gap: "no dealer plate serial grammar sourced"
|
|
375
|
+
temporary:
|
|
376
|
+
statutory_hook: "ORS 803.540 exempts operators running under TEMPORARY PERMITS. Oregon trip permits may be documents rather than plates."
|
|
377
|
+
gap: "not obtained; may fall outside the schema's plate definition entirely"
|
|
378
|
+
historic:
|
|
379
|
+
statutory_hook: "ORS 803.525 puts 'antique' vehicles and 'vehicles of special interest' in the one-plate list, so both are distinct issuance categories. Oregon DMV lists Form 6577, 'Antique/Special Interest Vehicle Certification'."
|
|
380
|
+
gap: "no serial grammar sourced for either; note Oregon distinguishes ANTIQUE from SPECIAL INTEREST, a two-tier historic regime worth modelling once sourced"
|
|
381
|
+
|
|
382
|
+
# ---------------------------------------------------------------------------
|
|
383
|
+
# Dead ends and open items.
|
|
384
|
+
# ---------------------------------------------------------------------------
|
|
385
|
+
research_notes:
|
|
386
|
+
reachability:
|
|
387
|
+
- "www.oregonlegislature.gov: TLS handshake refused from this environment on every attempt (curl exit 35 with default, --tlsv1.2, --tls-max 1.2 and --http1.1; WebFetch ECONNRESET). ORS text read from oregon.public.law instead. Oregon statutes are PD edicts so the text is the text, but official-host re-verification is an open item."
|
|
388
|
+
- "www.oregon.gov/odot/DMV/pages/vehicle/plates.aspx: 200 and fully readable. The 'View your plate options' and 'Special Background Fees Chart' targets are script-rendered and four guessed URLs all 404'd (plate_options.aspx, plates_special.aspx, plate_special.aspx, plateoptions.aspx) — the real paths must be harvested from the rendered DOM."
|
|
389
|
+
open_items:
|
|
390
|
+
- "Chapter 572, Oregon Laws 1987 — the design-contest act itself — was not fetched. It is the primary that would date the contest, name the commission and possibly settle who owns the winning artwork. HIGH VALUE for both period and artwork_risk."
|
|
391
|
+
- "The Special Background Fees Chart is the identified route to an exact Oregon specialty programme count."
|
|
392
|
+
- "No Oregon plate replacement cycle was located anywhere in ORS 803 (contrast Florida's 10 years, Montana's 5, Idaho's now-repealed 10). Whether Oregon truly has none is an unresolved negative."
|