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,427 @@
|
|
|
1
|
+
# plates/us-ct.yml — Connecticut (PRD-PLATES gate L2, northeast group).
|
|
2
|
+
#
|
|
3
|
+
# WHY CONNECTICUT IS UNUSUAL, and what the statute actually carries: Connecticut
|
|
4
|
+
# is one of the few states whose CURRENT BASE HAS A STATUTORY START DATE and
|
|
5
|
+
# whose LEGENDS ARE LEGISLATED. C.G.S. § 14-21b(a) says the commissioner "shall
|
|
6
|
+
# issue fully reflectorized safety number plates for new registrations and
|
|
7
|
+
# renewal registrations issued ON AND AFTER JANUARY 1, 2000", that "each plate
|
|
8
|
+
# shall bear the words 'Constitution State' and 'Connecticut'", and that the
|
|
9
|
+
# commissioner "shall issue TWO fully reflectorized safety number plates". So
|
|
10
|
+
# the base year, the two legends, the reflectorization and the two-plate rule
|
|
11
|
+
# are all primary — not brochure, not folklore. What the statute does NOT carry
|
|
12
|
+
# is the SERIAL GRAMMAR: Chapter 246 nowhere states a character count, an
|
|
13
|
+
# alphabet or a dimension. Every serial claim below is therefore secondary and
|
|
14
|
+
# is labelled as such (PRD-PLATES §4: Wikipedia is a LOCATOR; ctplates.info and
|
|
15
|
+
# licenseplates.cc are enthusiast corroboration, cited because they were used).
|
|
16
|
+
#
|
|
17
|
+
# THE SEPARATOR PROBLEM, recorded here because Connecticut is the first
|
|
18
|
+
# jurisdiction in the dataset to hit it: Connecticut prints a RAISED MIDDLE DOT
|
|
19
|
+
# between serial groups (AB·12345), not a hyphen and not a space. U+00B7 is in
|
|
20
|
+
# `_meta/separators.yml`'s FORGIVING set — so a lenient consumer already strips
|
|
21
|
+
# it correctly — but it is NOT in the EMITTED set, so the dataset may not spell
|
|
22
|
+
# it (PRD-PLATES §2.6). Every pattern and regex below therefore writes the gap
|
|
23
|
+
# as U+0020 and this note carries the fact. That is a data-honest workaround,
|
|
24
|
+
# not a silent one; whether the emitted set should grow a third member is a
|
|
25
|
+
# `_meta` PR question and is raised in the group dossier, not decided here.
|
|
26
|
+
#
|
|
27
|
+
# ARTWORK: Connecticut turns out to have the most interesting IP evidence in
|
|
28
|
+
# this group and it is NOT favourable — see `artwork_risk`.
|
|
29
|
+
jurisdiction: us-ct
|
|
30
|
+
authority:
|
|
31
|
+
name: Connecticut Department of Motor Vehicles (CT DMV)
|
|
32
|
+
url: "https://portal.ct.gov/dmv"
|
|
33
|
+
binding: vehicle
|
|
34
|
+
statute_edition: >-
|
|
35
|
+
General Statutes of Connecticut, Title 14 Chapter 246 (Motor Vehicles.
|
|
36
|
+
Operators and Motor Vehicles), as published by the Connecticut General
|
|
37
|
+
Assembly and revised to January 1, 2026 — the edition read for this pass.
|
|
38
|
+
|
|
39
|
+
# ---------------------------------------------------------------------------
|
|
40
|
+
# artwork_risk — required per jurisdiction by PRD-PLATES §4.
|
|
41
|
+
# ---------------------------------------------------------------------------
|
|
42
|
+
artwork_risk:
|
|
43
|
+
posture: adverse-evidence-found
|
|
44
|
+
basis: >-
|
|
45
|
+
Connecticut is NOT in the Commons/Wikipedia survey of state public-domain
|
|
46
|
+
postures (no {{PD-CTGov}} template exists on Commons — checked by API this
|
|
47
|
+
pass, result MISSING), so the §105 default applies: a state work is
|
|
48
|
+
copyrighted unless the state says otherwise. Connecticut has said the
|
|
49
|
+
OPPOSITE of otherwise, in statute. C.G.S. § 14-21w(e) expressly authorises
|
|
50
|
+
the Commissioner of Motor Vehicles to "provide for the REPRODUCTION AND
|
|
51
|
+
MARKETING of the Share the Road commemorative number plate IMAGE for use on
|
|
52
|
+
clothing, recreational equipment, posters, mementoes or other products or
|
|
53
|
+
programs", with the proceeds going to a statutory account. A legislature
|
|
54
|
+
that grants its DMV a commercial licensing right over a plate IMAGE is a
|
|
55
|
+
legislature treating that image as a proprietary asset. The same section,
|
|
56
|
+
at (a), adds "No use shall be made of such plates except as official
|
|
57
|
+
registration marker plates." This is direct statutory evidence of an
|
|
58
|
+
asserted interest and it is stronger evidence than the absence of a Commons
|
|
59
|
+
tag. Treat Connecticut as adverse alongside NY/PA/WA/AZ.
|
|
60
|
+
scope_caution: >-
|
|
61
|
+
§ 14-21w(e) is about ONE commemorative plate (Share the Road), not about the
|
|
62
|
+
standard base. No instrument was found asserting copyright over the standard
|
|
63
|
+
2000 base itself, and none was found disclaiming it. The honest reading is:
|
|
64
|
+
Connecticut demonstrably treats at least one plate image as marketable state
|
|
65
|
+
property, and nothing in the corpus suggests the standard base is treated
|
|
66
|
+
differently.
|
|
67
|
+
emblem_rule: >-
|
|
68
|
+
PRD-PLATES §3 placeholder default applies without exception here. The
|
|
69
|
+
Connecticut base carries a screened STATE SHAPE at top left; state-shape and
|
|
70
|
+
state-seal protection independent of copyright is unresearched for
|
|
71
|
+
Connecticut (recorded gap, same gap the FL pilot recorded).
|
|
72
|
+
photograph_caution: >-
|
|
73
|
+
Commons photographs of Connecticut plates carry the PHOTOGRAPHER's licence,
|
|
74
|
+
not the design's — the uploader had no standing over the design. Because our
|
|
75
|
+
renders are generated from spec and never derived from a photograph, those
|
|
76
|
+
obligations never attach (PRD-PLATES §4, §6).
|
|
77
|
+
sources:
|
|
78
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # C.G.S. § 14-21w(a) 'No use shall be made of such plates except as official registration marker plates'; § 14-21w(e) the reproduction-and-marketing authority over the plate IMAGE — the adverse evidence"
|
|
79
|
+
- "https://commons.wikimedia.org/w/api.php?action=query&titles=Template:PD-CTGov # queried this pass: Template:PD-CTGov is MISSING on Commons — no Connecticut public-domain tag exists, unlike PD-FLGov/PD-CAGov/PD-MAGov/PD-MEGov"
|
|
80
|
+
- "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR: Connecticut has no entry in this survey — recorded as unsurveyed, not as favourable"
|
|
81
|
+
|
|
82
|
+
# ---------------------------------------------------------------------------
|
|
83
|
+
# Display rules — all statutory, all quoted from Chapter 246.
|
|
84
|
+
# ---------------------------------------------------------------------------
|
|
85
|
+
display_rules:
|
|
86
|
+
default: "TWO plates. § 14-21b(a): the commissioner 'shall issue two fully reflectorized safety number plates'; § 14-18(a)(2): a vehicle for which two number plates have been issued 'shall ... display in a conspicuous place at the front and the rear of such vehicle the number plates'. § 14-18(a)(1) governs the one-plate case (rear only)."
|
|
87
|
+
legibility: "§ 14-18(c): plates 'shall be entirely unobscured and the numerals and letters thereon shall be plainly legible at all times'; horizontal; 'fastened so as not to swing'; and when lights are required the REAR plate 'shall be so illuminated as to be legible at a distance of fifty feet'."
|
|
88
|
+
one_per_end: "§ 14-18(c): 'Not more than one number plate shall be displayed on the front or rear of any motor vehicle' — subject to a commissioner's permission exception. A genuinely unusual rule; most states legislate a minimum, Connecticut legislates a maximum."
|
|
89
|
+
obstruction: "§ 14-18(c): 'Nothing may be affixed to a motor vehicle or to the official number plates displayed on such vehicle that obscures or impairs the visibility of any information on such number plates.'"
|
|
90
|
+
ownership: "§ 14-18(d): 'All number plates shall be the property of the state and no title therein shall pass to any person registering a motor vehicle' — except that on a new general issue 'the obsolete number plates shall become the property of the registrant upon the expiration date'."
|
|
91
|
+
sample_plates: "§ 14-18(e): the commissioner may issue a plate inscribed with the legend 'SAMPLE', which may not be displayed on any vehicle."
|
|
92
|
+
penalty: "§ 14-18(g): violation of subsection (a), (c), (d), (e) or (f) is an INFRACTION. § 14-21b(c): failure to display issued reflectorized plates as provided in § 14-18 is also an infraction."
|
|
93
|
+
sources:
|
|
94
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # § 14-18(a)(1),(a)(2) display front/rear; (c) legibility, horizontality, 50-foot rear illumination, the not-more-than-one rule, the obstruction rule; (d) state ownership of plates; (e) SAMPLE plates; (g) infraction. § 14-21b(a),(c) two reflectorized plates and the display infraction"
|
|
95
|
+
|
|
96
|
+
# ---------------------------------------------------------------------------
|
|
97
|
+
# The US standards chain, recorded once per jurisdiction file. Nothing below
|
|
98
|
+
# quotes SAE J686 (paywalled, unpinned — the standing rule).
|
|
99
|
+
# ---------------------------------------------------------------------------
|
|
100
|
+
us_standards:
|
|
101
|
+
no_federal_mandate: true
|
|
102
|
+
chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption. AAMVA writes recommendations in the declarative present; they are RECOMMENDED PRACTICE, not requirement."
|
|
103
|
+
aamva_geometry: "AAMVA §2.1 jurisdiction name top-centre between the bolt holes, >=0.25 in above the plate number, >=0.125 in from the top edge, characters 0.75-1.0 in; §2.2 serial characters >=2.5 in high, >=0.25 in apart, stroke 0.2-0.4 in, >=1.25 in clear of top and bottom; §3.3 readable in daylight and at night from >=75 feet, materials per ASTM D4956-19 and ISO 7591:1982 cl.3, entrance angle 0.2 deg, observation angle -4 deg, minimum 45 cd/lx/m^2."
|
|
104
|
+
dimensions_delegated: "AAMVA §3.1 sends dimensions and bolt holes to SAE J686, whose text is PAYWALLED and was NOT obtained. No J686 dimension is quoted here. Connecticut's own statute states NO plate dimension at all (Chapter 246 was read in full for this pass; the word 'inches' appears nowhere in a plate-size context) — so the 12x6 in figure below is `observed`, not sourced."
|
|
105
|
+
replacement_cycle_recommendation: "AAMVA §1.1 recommends a rolling or full replacement cycle 'not to exceed 7 to 10 years'. Connecticut legislates NO replacement cycle in Chapter 246 (recorded gap); its 2000 base has been in issue for 26 years, well past the AAMVA recommendation."
|
|
106
|
+
source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
|
|
107
|
+
folklore_caution: >-
|
|
108
|
+
The "1956 AMA/AAMVA/NSC standardization agreement" appears in the Connecticut
|
|
109
|
+
Wikipedia article WITH a citation, unlike the US article where it is a bare
|
|
110
|
+
`citation needed` — but the citation is Christopher Garrish, "Reconsidering
|
|
111
|
+
the Standard Plate Size", *Plates* (ALPCA) vol. 62 no. 5, October 2016: a
|
|
112
|
+
hobby-association members' magazine, not obtained, not obtainable online, and
|
|
113
|
+
whose very TITLE announces that it reconsiders the standard story. Recorded
|
|
114
|
+
as COMMONLY REPEATED, STILL UNVERIFIED, with the pointer to the one artefact
|
|
115
|
+
that might settle it. Connecticut's own 6x12 in plate is not in its statute.
|
|
116
|
+
|
|
117
|
+
series:
|
|
118
|
+
|
|
119
|
+
# =========================================================================
|
|
120
|
+
# CURRENT STANDARD ISSUE.
|
|
121
|
+
# =========================================================================
|
|
122
|
+
- id: us-ct-standard-2015
|
|
123
|
+
class: standard
|
|
124
|
+
categories: [car, van, truck, bus]
|
|
125
|
+
period: { start: 2015 }
|
|
126
|
+
period_evidence: secondary-dated
|
|
127
|
+
matching: strict
|
|
128
|
+
format:
|
|
129
|
+
pattern: "LL 99999"
|
|
130
|
+
regex: '\A[A-Z]{2} ?\d{5}\z'
|
|
131
|
+
charset:
|
|
132
|
+
notes: >-
|
|
133
|
+
Reported alphabet: letters I, O and Q not used. THE STATUTE STATES NO
|
|
134
|
+
ALPHABET AND NO LENGTH — Chapter 246 was read in full and contains no
|
|
135
|
+
character-count or character-set rule for standard plates, so this
|
|
136
|
+
exclusion is secondary (Wikipedia locator, sourced there to a Hartford
|
|
137
|
+
Courant report of the September 2015 changeover). It is recorded as a
|
|
138
|
+
note and deliberately NOT promoted to a `regex_strict`: PRD-PLATES
|
|
139
|
+
reserves the strict twin for the AUTHORITY's own alphabet, and laundering
|
|
140
|
+
a newspaper report into a strict twin is exactly the folklore failure
|
|
141
|
+
§4 forbids.
|
|
142
|
+
separator_note: >-
|
|
143
|
+
THE PRINTED SEPARATOR IS A RAISED MIDDLE DOT (U+00B7): the plate reads
|
|
144
|
+
AB·12345. U+00B7 is in `_meta/separators.yml`'s FORGIVING set but not its
|
|
145
|
+
EMITTED set, so the dataset spells the gap as U+0020 here and records the
|
|
146
|
+
true glyph in this note (PRD-PLATES §2.6). A lenient consumer already
|
|
147
|
+
strips U+00B7 correctly; a consumer RENDERING from this data must read
|
|
148
|
+
this note, not the pattern, to place the dot.
|
|
149
|
+
progression: "AA 00001 upward; reported at BW 99865 as of 31 October 2025 (licenseplates.cc — enthusiast corroboration, cited because used)"
|
|
150
|
+
design:
|
|
151
|
+
plate: { w: 12, h: 6, unit: in, w_mm: 304.8, h_mm: 152.4, hex_basis_note: "dimension OBSERVED, not sourced — Connecticut's statute states no plate size" }
|
|
152
|
+
background: { finish: retroreflective }
|
|
153
|
+
colour_note: >-
|
|
154
|
+
NO HEX IS RECORDED. The base is a GRADIENT (reflective sky blue fading to
|
|
155
|
+
white) with a dark blue serial, so a single background hex would be a
|
|
156
|
+
false claim, and § 14-21b mandates reflectorization while naming no
|
|
157
|
+
colour at all. Recorded as a gap rather than invented — the FL pilot's
|
|
158
|
+
lesson applied.
|
|
159
|
+
legend_top: "Connecticut"
|
|
160
|
+
legend_bottom: "Constitution State"
|
|
161
|
+
legend_rule: >-
|
|
162
|
+
STATUTORY. § 14-21b(a), verbatim: "Each plate shall bear the words
|
|
163
|
+
'Constitution State' and 'Connecticut'." The statute fixes the WORDS but
|
|
164
|
+
not their placement; top/bottom placement is observed. Note the contrast
|
|
165
|
+
with the 1987-1999 base, where the same two words appeared with
|
|
166
|
+
CONNECTICUT at top and CONSTITUTION STATE at bottom after a 1987 swap —
|
|
167
|
+
i.e. the statute has been satisfied by two different layouts.
|
|
168
|
+
emblem: { present: true, rendered: placeholder, description: "screened state shape at top left — observed; see artwork_risk" }
|
|
169
|
+
material: "'fully reflectorized safety number plates' (§ 14-21b(a)); no material is named in statute"
|
|
170
|
+
rear_differs: false
|
|
171
|
+
region_encoding: none
|
|
172
|
+
sources:
|
|
173
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # § 14-21b(a): fully reflectorized plates for registrations issued on and after January 1, 2000; the 'Constitution State' and 'Connecticut' legends; two plates issued. § 14-18: display"
|
|
174
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Connecticut # LOCATOR ONLY (PRD-PLATES §4): the August 2015 introduction of the seven-character AB·12345 arrangement, the I/O/Q exclusion, and the AA·00001 start. Its own citation for the changeover is a Hartford Courant news report of 18 September 2015"
|
|
175
|
+
- "https://www.licenseplates.cc/CT # enthusiast corroboration, cited because used: the reported serial high-water mark BW·99865 as of 31 October 2025. No text or image copied"
|
|
176
|
+
notes: >-
|
|
177
|
+
CONNECTICUT CURRENT STANDARD. THE ID IS DATED 2015, NOT 2000, and that is a
|
|
178
|
+
deliberate schema decision: the DESIGN base is statutory from 1 January 2000
|
|
179
|
+
(§ 14-21b) but the SERIAL GRAMMAR changed twice on that base — to the interim
|
|
180
|
+
1ABCD2 and 1AB·CD2 shapes in 2013, and to the present AB·12345 shape in
|
|
181
|
+
August 2015. PRD-PLATES §2.3 makes a format change its own series, so the
|
|
182
|
+
2000 base carries three passenger series, of which this is the current one.
|
|
183
|
+
PERIOD EVIDENCE: `secondary-dated` — the 2015 date is a news/locator claim,
|
|
184
|
+
not a statutory one; the STATUTORY date that is beyond doubt is 2000, and it
|
|
185
|
+
belongs to the base, not to this serial format. The two 2013-2015 interim
|
|
186
|
+
formats are recorded in the group dossier and are deliberately NOT given
|
|
187
|
+
series here: they lasted fourteen and twenty months respectively, they are
|
|
188
|
+
the kind of transitional artefact §2.5 excludes, and no primary establishes
|
|
189
|
+
their boundaries.
|
|
190
|
+
|
|
191
|
+
# =========================================================================
|
|
192
|
+
# ONE SERIES BACK — the previous standard grammar on the same 2000 base.
|
|
193
|
+
# =========================================================================
|
|
194
|
+
- id: us-ct-standard-2000
|
|
195
|
+
class: standard
|
|
196
|
+
categories: [car, van, truck, bus]
|
|
197
|
+
period: { start: 2000, end: 2013 }
|
|
198
|
+
period_evidence: statutory-date-start
|
|
199
|
+
matching: strict
|
|
200
|
+
format:
|
|
201
|
+
pattern: "999 LLL"
|
|
202
|
+
regex: '\A\d{3} ?[A-Z]{3}\z'
|
|
203
|
+
charset:
|
|
204
|
+
notes: >-
|
|
205
|
+
Reported: the 'O' series was not used and the 'V' series was reserved
|
|
206
|
+
for Veteran plates. Secondary (locator) — not promoted to a strict twin,
|
|
207
|
+
for the reason given on us-ct-standard-2015.
|
|
208
|
+
separator_note: "printed as a raised middle dot (123·ABC); spelled U+0020 here per PRD-PLATES §2.6 — see the file header"
|
|
209
|
+
progression: "100 NZN to 999 ZZX — i.e. it CONTINUED the sequence of the 1987-1999 base rather than restarting, which is why the 2000 base's first plate is not 100 AAA"
|
|
210
|
+
design:
|
|
211
|
+
plate: { w: 12, h: 6, unit: in }
|
|
212
|
+
background: { finish: retroreflective }
|
|
213
|
+
colour_note: "same gradient sky-blue-to-white base with dark blue serial as us-ct-standard-2015; no hex recorded, same reason"
|
|
214
|
+
legend_top: "Connecticut"
|
|
215
|
+
legend_bottom: "Constitution State"
|
|
216
|
+
legend_rule: "§ 14-21b(a) — identical statutory legends; this series and the current one share a design and differ only in serial grammar"
|
|
217
|
+
emblem: { present: true, rendered: placeholder }
|
|
218
|
+
region_encoding: none
|
|
219
|
+
sources:
|
|
220
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # § 14-21b(a): the 1 January 2000 statutory start of the reflectorized base this series is issued on, and its two legends"
|
|
221
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Connecticut # LOCATOR ONLY: the 123·ABC arrangement on the January 2000 - June 2013 window, the 100·NZN to 999·ZZX range continuing from the previous base, the unused 'O' series and the Veteran 'V' reservation"
|
|
222
|
+
notes: >-
|
|
223
|
+
THE PREVIOUS STANDARD GRAMMAR, and the one with the best period evidence in
|
|
224
|
+
the whole Connecticut file: its START is § 14-21b's own "on and after
|
|
225
|
+
January 1, 2000", which is a statutory date, not a collector's recollection.
|
|
226
|
+
Its END (2013) is secondary. The sequence detail is the interesting one for
|
|
227
|
+
a parse API: Connecticut did NOT restart numbering at the base change, so a
|
|
228
|
+
123·ABC serial alone cannot distinguish a 1987-base plate from a 2000-base
|
|
229
|
+
plate — only the range can, and the boundary (999·NZM / 100·NZN) is
|
|
230
|
+
locator-grade. Recorded rather than smoothed over.
|
|
231
|
+
|
|
232
|
+
# =========================================================================
|
|
233
|
+
# CORE DISTINCT CLASSES (L2 scope: motorcycle, trailer, dealer, government).
|
|
234
|
+
# =========================================================================
|
|
235
|
+
- id: us-ct-motorcycle
|
|
236
|
+
class: motorcycle
|
|
237
|
+
categories: [motorcycle]
|
|
238
|
+
period: { start: 2015 }
|
|
239
|
+
period_evidence: secondary-dated
|
|
240
|
+
matching: strict
|
|
241
|
+
format:
|
|
242
|
+
pattern: "00 LLLL"
|
|
243
|
+
regex: '\A00 ?[A-Z]{4}\z'
|
|
244
|
+
charset: { notes: "a literal '00' prefix followed by four letters — the two zeros are part of the serial, not a pad. Reported secondary; no statutory grammar exists" }
|
|
245
|
+
separator_note: "printed as a raised middle dot (00·ABCD); spelled U+0020 here per PRD-PLATES §2.6"
|
|
246
|
+
design:
|
|
247
|
+
plate: { w: 7, h: 4, unit: in, dimension_note: "MOTORCYCLE PLATE SIZE NOT OBTAINED — Connecticut's statute states no dimension for any plate and no departmental spec was found. This entry is a PLACEHOLDER carrying the conventional US motorcycle size and must not be treated as sourced (recorded gap)" }
|
|
248
|
+
background: { finish: retroreflective }
|
|
249
|
+
legend_top: "Conn"
|
|
250
|
+
legend_bottom: "Motorcycle"
|
|
251
|
+
legend_note: "the top legend is reported as the ABBREVIATION 'Conn', not 'Connecticut' — if correct, this is the one Connecticut plate that does not satisfy § 14-21b(a)'s literal wording, which may simply mean § 14-21b does not reach motorcycles (it names 'passenger, combination and commercial registrations and other registrations as the commissioner deems feasible'). Recorded as an open question, not resolved."
|
|
252
|
+
emblem: { present: false }
|
|
253
|
+
region_encoding: none
|
|
254
|
+
sources:
|
|
255
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Connecticut # LOCATOR ONLY: the 00·ABCD motorcycle arrangement introduced 2015 and shared with Classic Vehicle plates; the 'Conn'/'Motorcycle' legends"
|
|
256
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # § 14-21b(a) scopes the reflectorized-plate duty to 'passenger, combination and commercial registrations and other registrations as the commissioner deems feasible' — the statutory reason motorcycles may sit outside the legend rule"
|
|
257
|
+
notes: >-
|
|
258
|
+
MOTORCYCLE. The 00·ABCD block is reported to be SHARED with the Classic
|
|
259
|
+
Vehicle series — two different classes drawing from one serial space, which
|
|
260
|
+
means a serial alone does not determine the class and a parse API must
|
|
261
|
+
return both candidates. That is precisely the ambiguity model PRD-PAID's
|
|
262
|
+
parse endpoint is specified to expose (ranked candidates, not one answer),
|
|
263
|
+
and Connecticut is the first US case of it in this dataset.
|
|
264
|
+
|
|
265
|
+
- id: us-ct-trailer
|
|
266
|
+
class: trailer
|
|
267
|
+
categories: [trailer]
|
|
268
|
+
period: { start: 2015 }
|
|
269
|
+
period_evidence: secondary-dated
|
|
270
|
+
matching: strict
|
|
271
|
+
format:
|
|
272
|
+
pattern: "LL 99999"
|
|
273
|
+
regex: '\A[A-Z]{2} ?\d{5}\z'
|
|
274
|
+
charset: { notes: "commercial trailers now draw the same AB·12345 grammar as passenger plates; the older V·12345 and W·12345 prefixed forms are reported to remain on the road (secondary)" }
|
|
275
|
+
separator_note: "printed as a raised middle dot; spelled U+0020 here per PRD-PLATES §2.6"
|
|
276
|
+
design:
|
|
277
|
+
plate: { w: 12, h: 6, unit: in }
|
|
278
|
+
background: { finish: retroreflective }
|
|
279
|
+
colour_note: "reported as the passenger base with a RED serial and red border line rather than dark blue — a colour-only differentiation; no hex recorded (secondary, and the base is a gradient)"
|
|
280
|
+
legend_top: "Connecticut"
|
|
281
|
+
legend_bottom: "Trailer"
|
|
282
|
+
region_encoding: none
|
|
283
|
+
sources:
|
|
284
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Connecticut # LOCATOR ONLY: Trailer plates carry the passenger base with red serial and border and a 'Trailer' bottom legend; serial formats V·12345, W·12345 and now AB·12345"
|
|
285
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # Chapter 246 is the registration authority; it states no trailer plate grammar (recorded gap)"
|
|
286
|
+
notes: >-
|
|
287
|
+
TRAILER. Connecticut differentiates several non-passenger classes by SERIAL
|
|
288
|
+
COLOUR (red) on an otherwise identical base — Trailer, Commercial,
|
|
289
|
+
Apportioned, Construction, Factory, Farm and Fire Apparatus all reportedly
|
|
290
|
+
share the red-serial treatment. Under PRD-PLATES §2.3 a colour-only variant
|
|
291
|
+
of the same format+period is a sub-entry rather than a series; these are
|
|
292
|
+
given separate entries only where the FORMAT also differs. Trailer earns its
|
|
293
|
+
own entry because it also carries a distinct bottom legend, which is a
|
|
294
|
+
design difference.
|
|
295
|
+
|
|
296
|
+
- id: us-ct-dealer
|
|
297
|
+
class: dealer
|
|
298
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
299
|
+
period: { start: 2015 }
|
|
300
|
+
period_evidence: instrument-in-force-upper-bound
|
|
301
|
+
matching: recall-only
|
|
302
|
+
format:
|
|
303
|
+
pattern: "XL 9999"
|
|
304
|
+
regex: '\AM?[XD][A-Z]{1,2} ?\d{1,4}\z'
|
|
305
|
+
charset:
|
|
306
|
+
notes: >-
|
|
307
|
+
Reported structure: a CLASS PREFIX ('X' new dealer, 'D' used dealer,
|
|
308
|
+
'MX'/'MD' for the motorcycle equivalents), then one or two sequential
|
|
309
|
+
letters, then a numeric suffix of one to four digits which IDENTIFIES
|
|
310
|
+
THE DEALERSHIP — the letters advance within a dealership, the number
|
|
311
|
+
names it. That is the inverse of the usual arrangement and is the reason
|
|
312
|
+
this series is `recall-only`: the regex is a union across five reported
|
|
313
|
+
width combinations per prefix and is wider than any single issuing
|
|
314
|
+
grammar.
|
|
315
|
+
separator_note: "printed as a raised middle dot (XA·0); spelled U+0020 here per PRD-PLATES §2.6"
|
|
316
|
+
design:
|
|
317
|
+
plate: { w: 12, h: 6, unit: in }
|
|
318
|
+
background: { finish: retroreflective }
|
|
319
|
+
legend_bottom: "Dealer"
|
|
320
|
+
binding: business
|
|
321
|
+
region_encoding: "the NUMERIC SUFFIX identifies the DEALERSHIP, not a geography — a business decode, not a region decode. No decode table was obtained (recorded gap); it would be a per-dealer registry, which is out of PRD-PLATES scope in any event"
|
|
322
|
+
sources:
|
|
323
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Connecticut # LOCATOR ONLY: the X/D/MX/MD dealer prefixes, the five reported width combinations each, and the rule that the numeric suffix signifies the dealership"
|
|
324
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # § 14-21c: number plates for manufacturers of motor vehicles or automotive equipment — the statutory hook for the manufacturer end of this class; the dealer grammar itself is not in Chapter 246 (recorded gap)"
|
|
325
|
+
notes: >-
|
|
326
|
+
DEALER. `binding: business` for the same reason as Germany's rote
|
|
327
|
+
Kennzeichen and Florida's dealer plate: the plate follows the dealership,
|
|
328
|
+
not a vehicle. `matching: recall-only` is the honest setting — a hit says
|
|
329
|
+
"this string has a shape Connecticut issues to dealers", not "this is a
|
|
330
|
+
valid dealer plate", because the regex unions five width variants across
|
|
331
|
+
four prefixes and no primary bounds any of them. PERIOD: the start is an
|
|
332
|
+
upper bound from the statute edition read, not a real start; Connecticut
|
|
333
|
+
dealer plates are reported to date to the 1920s.
|
|
334
|
+
|
|
335
|
+
- id: us-ct-municipal
|
|
336
|
+
class: government
|
|
337
|
+
categories: [car, van, truck, bus]
|
|
338
|
+
period: { start: 2015 }
|
|
339
|
+
period_evidence: instrument-in-force-upper-bound
|
|
340
|
+
matching: recall-only
|
|
341
|
+
format:
|
|
342
|
+
pattern: "999 LLL"
|
|
343
|
+
regex: '\A\d{1,3} ?[A-Z]{2,3}\z'
|
|
344
|
+
charset:
|
|
345
|
+
notes: >-
|
|
346
|
+
Reported structure: one to three digits, then TWO OR THREE LETTERS THAT
|
|
347
|
+
NAME THE MUNICIPALITY. Six width combinations are reported (1·AB, 12·AB,
|
|
348
|
+
123·AB, 1·ABC, 12·ABC, 123·ABC), which is why this is `recall-only`.
|
|
349
|
+
separator_note: "printed as a raised middle dot; spelled U+0020 here per PRD-PLATES §2.6"
|
|
350
|
+
design:
|
|
351
|
+
plate: { w: 12, h: 6, unit: in }
|
|
352
|
+
background: { finish: retroreflective }
|
|
353
|
+
legend_bottom: "Municipal"
|
|
354
|
+
validation_note: "reported to use a 'MUNICIPAL CT' sticker in place of the ordinary validation sticker on the Preserve the Sound variant"
|
|
355
|
+
region_encoding: >-
|
|
356
|
+
YES — AND IT IS THE ONLY REAL GEOGRAPHIC DECODE IN A CONNECTICUT PLATE. The
|
|
357
|
+
two- or three-letter group indicates the TOWN OR CITY that owns the vehicle
|
|
358
|
+
(police cars and dump trucks included). THE DECODE TABLE WAS NOT OBTAINED —
|
|
359
|
+
no official municipal-code list was found in this pass, and Connecticut has
|
|
360
|
+
169 towns, so the table is substantial. Recorded as a gap and as a
|
|
361
|
+
candidate `plates/_decode/us-ct-municipal.yml` for a later gate. Until it
|
|
362
|
+
lands, a parse API must say "a Connecticut municipal plate" and stop, not
|
|
363
|
+
guess a town.
|
|
364
|
+
sources:
|
|
365
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Connecticut # LOCATOR ONLY: the six Municipal width combinations and the statement that 'the letters in the serial indicate the municipality'"
|
|
366
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # Chapter 246 read in full; it contains no municipal plate grammar and no municipal code table (recorded gap)"
|
|
367
|
+
notes: >-
|
|
368
|
+
MUNICIPAL — Connecticut's government class, and the one Connecticut series
|
|
369
|
+
that encodes geography. Modelled `government` rather than `police` even
|
|
370
|
+
though police cars carry it, because the class is defined by OWNERSHIP (the
|
|
371
|
+
town) and not by function; PRD-PLATES's `police` class is for fleets with a
|
|
372
|
+
series distinct from general government, which this is not.
|
|
373
|
+
|
|
374
|
+
# =========================================================================
|
|
375
|
+
# SPECIALTY — PROGRAM INDEX ONLY (PRD-PLATES §2.5). No individual designs.
|
|
376
|
+
# =========================================================================
|
|
377
|
+
- id: us-ct-specialty-index
|
|
378
|
+
class: specialty
|
|
379
|
+
categories: [car, van, truck, motorcycle]
|
|
380
|
+
period: { start: 2015 }
|
|
381
|
+
period_evidence: instrument-in-force-upper-bound
|
|
382
|
+
matching: strict
|
|
383
|
+
format:
|
|
384
|
+
pattern: "LL 99999"
|
|
385
|
+
regex: '\A[A-Z]{2} ?\d{5}\z'
|
|
386
|
+
charset: { notes: "commemorative plates carry ORDINARY serials on an alternative design; § 14-21w(b) is explicit that 'such number plates shall have letters and numbers selected by the Commissioner of Motor Vehicles', and several sections allow the registrant to carry over a previously issued number or a low number under § 14-160" }
|
|
387
|
+
design:
|
|
388
|
+
plate: { w: 12, h: 6, unit: in }
|
|
389
|
+
background: { finish: retroreflective }
|
|
390
|
+
note: "one design per authorised program; individual designs are L4 scope (PRD-PLATES §2.5) and none is described here"
|
|
391
|
+
emblem: { present: true, rendered: placeholder }
|
|
392
|
+
program_index:
|
|
393
|
+
count_statutory: 13
|
|
394
|
+
count_statutory_basis: >-
|
|
395
|
+
THIS COUNT IS PRIMARY, WHICH IS RARE FOR A US SPECIALTY INDEX. Connecticut
|
|
396
|
+
authorises commemorative plates ONE STATUTE AT A TIME, so the program list
|
|
397
|
+
can be counted directly out of Chapter 246's own table of contents rather
|
|
398
|
+
than off a DMV gallery. Thirteen sections carry the phrase "commemorative
|
|
399
|
+
number plates" as of the January 2026 revision: § 14-19b (collegiate),
|
|
400
|
+
14-21e (Long Island Sound), 14-21i (Greenways), 14-21j (Amistad), 14-21l
|
|
401
|
+
(Olympic Spirit), 14-21o (United We Stand), 14-21q (childhood cancer
|
|
402
|
+
awareness), 14-21s (wildlife conservation), 14-21u (Support Our Troops!),
|
|
403
|
+
14-21v (support for the nursing profession), 14-21w (Share the Road),
|
|
404
|
+
14-21x (Men's Health), 14-21y (Hartford Whalers), 14-21z (Save Our Lakes).
|
|
405
|
+
NOTE THE ARITHMETIC: that enumeration lists fourteen sections and the
|
|
406
|
+
phrase-count is thirteen, because § 14-19b's heading spells the program
|
|
407
|
+
differently ("collegiate commemorative number plates") and § 14-21e's does
|
|
408
|
+
not use the word "commemorative" at all. The discrepancy is recorded, not
|
|
409
|
+
resolved by picking a number — PRD-PLATES §5.3.
|
|
410
|
+
open_ended_route: "§ 14-19a additionally lets the commissioner issue SPECIAL number plates by REGULATION to members of qualifying organizations and to colleges, and to DISCONTINUE them — an open-ended route whose current membership is not countable from statute. So the true program count is 'thirteen-to-fourteen named in statute, plus an unknown number authorised by regulation'."
|
|
411
|
+
further_statutory_types: "Chapter 246 separately authorises non-commemorative special plates that are NOT part of the specialty program: § 14-20 (antique/rare/special interest, including year-of-manufacture plates), 14-20a (volunteer firefighters), 14-20b/c/d (veterans, war-period service, families of those killed in action), 14-21 (amateur radio), 14-21a (foreign consul), 14-21d (POW and Congressional Medal of Honor), 14-21h (animal population control), 14-27 (public service vehicles), 14-27a (vanpool)."
|
|
412
|
+
official_list_url: "https://portal.ct.gov/dmv"
|
|
413
|
+
official_list_caution: "CT DMV's own specialty-plate page was NOT successfully fetched in this pass (portal.ct.gov returns 404 on every guessed path and the Wayback CDX index for portal.ct.gov/dmv surfaces only image assets). The count above therefore rests on the STATUTE, which PRD-PLATES §4 prefers anyway — but the DMV's live catalogue remains unpinned (recorded gap)."
|
|
414
|
+
ip_note: "§ 14-21w(e) — the reproduction-and-marketing authority over a plate image — sits inside this program and is the file's artwork_risk evidence. See artwork_risk above."
|
|
415
|
+
region_encoding: none
|
|
416
|
+
sources:
|
|
417
|
+
- "https://www.cga.ct.gov/current/pub/chap_246.htm # the chapter table of contents and section texts: the thirteen 'commemorative number plates' sections counted above; § 14-19a the regulation-made organizational and collegiate route including the discontinuance duty; § 14-21w(b) commissioner-selected letters and numbers, (e) the image-marketing authority"
|
|
418
|
+
notes: >-
|
|
419
|
+
THE CONNECTICUT SPECIALTY INDEX — and the best-sourced specialty index this
|
|
420
|
+
group produced, because Connecticut's legislature does the authorising
|
|
421
|
+
itself. Two things worth carrying forward. First, a statute-countable
|
|
422
|
+
program list is a genuinely better artefact than a DMV gallery: it is dated,
|
|
423
|
+
versioned, PD as an edict of government, and it cannot silently drift.
|
|
424
|
+
Second, the count is NOT a clean integer and the file says so — the
|
|
425
|
+
phrase-count (13) and the section-enumeration (14) disagree because two
|
|
426
|
+
sections word their headings differently, and PRD-PLATES §5.3 forbids
|
|
427
|
+
averaging a disagreement away.
|