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,419 @@
|
|
|
1
|
+
# plates/us-nd.yml — North Dakota (PRD-PLATES gate L2, group midwest-b).
|
|
2
|
+
#
|
|
3
|
+
# NORTH DAKOTA IS THE BEST-SOURCED STATE IN THIS GROUP, and it is worth saying
|
|
4
|
+
# why: NDDOT publishes, on its own license-plate page, a prose specification of
|
|
5
|
+
# the standard plate that names the INTRODUCTION MONTH, the SERIAL FORMAT and
|
|
6
|
+
# every design element. That is rare. Most states publish images and leave the
|
|
7
|
+
# facts to be inferred; North Dakota wrote them down. Consequently `us-nd-standard-2016`
|
|
8
|
+
# carries `period_evidence: agency-stated-date` rather than the
|
|
9
|
+
# instrument-in-force upper bound that the rest of this group is stuck with.
|
|
10
|
+
#
|
|
11
|
+
# THE SECOND NORTH DAKOTA GIFT is that the legislature specified plate CONTENT
|
|
12
|
+
# in the Century Code: § 39-04-12 mandates the slogan "Peace Garden State" in
|
|
13
|
+
# terms, and § 39-04-10.18 fixes the blackout plate's colours as VALUES ("a
|
|
14
|
+
# solid black background" / "white numbers and letters"). Statutory colour
|
|
15
|
+
# VALUES are unusual — Florida's legislature specified only that historic plates
|
|
16
|
+
# be "of a distinguishing color" and named none. So `us-nd-blackout` is the only
|
|
17
|
+
# series in this group whose hexes are `hex_basis: statute`.
|
|
18
|
+
#
|
|
19
|
+
# SOURCING RULE APPLIED HERE (PRD-PLATES §4): edicts of government are public
|
|
20
|
+
# domain at every level, so every content, display, reflectorization and class
|
|
21
|
+
# claim below cites the North Dakota Century Code. The NDDOT page is cited only
|
|
22
|
+
# for what the Code does not carry: the current base design, its introduction
|
|
23
|
+
# date and its serial arrangement.
|
|
24
|
+
jurisdiction: us-nd
|
|
25
|
+
authority:
|
|
26
|
+
name: North Dakota Department of Transportation (NDDOT), Motor Vehicle Division
|
|
27
|
+
url: "https://www.dot.nd.gov/motor-vehicle/license-plates"
|
|
28
|
+
binding: vehicle
|
|
29
|
+
statute_edition: "North Dakota Century Code Title 39, Chapter 39-04 (Motor Vehicles — Registration), chapter text as published by the North Dakota Legislative Branch at ndlegis.gov and fetched for this pass"
|
|
30
|
+
|
|
31
|
+
# ---------------------------------------------------------------------------
|
|
32
|
+
# artwork_risk — required per jurisdiction by PRD-PLATES §4.
|
|
33
|
+
# ---------------------------------------------------------------------------
|
|
34
|
+
artwork_risk:
|
|
35
|
+
posture: unresearched
|
|
36
|
+
basis: >-
|
|
37
|
+
NORTH DAKOTA WAS NOT LOCATED IN ANY COPYRIGHT SURVEY READ FOR THIS PASS. The
|
|
38
|
+
Wikipedia survey of subnational-government copyright status that the US dossier
|
|
39
|
+
treats as its core analysis carries per-state sections for Arizona, California,
|
|
40
|
+
Colorado, Florida, Georgia, Indiana, Massachusetts, Minnesota, Missouri, New
|
|
41
|
+
Jersey, New York, North Carolina, Pennsylvania, Rhode Island, South Carolina,
|
|
42
|
+
Utah and Washington — and NO section for North Dakota. No {{PD-NDGov}} tag was
|
|
43
|
+
found on Commons. Therefore the DEFAULT stated in the dossier governs: 17 U.S.C.
|
|
44
|
+
§ 105 does not reach the states, so a state plate design is presumed COPYRIGHTED
|
|
45
|
+
unless that state says otherwise, and North Dakota has not been shown to say
|
|
46
|
+
otherwise. Recorded as unresearched rather than as either PD or adverse, because
|
|
47
|
+
absence of a fetched source is weak evidence in both directions.
|
|
48
|
+
edict_carve_out: >-
|
|
49
|
+
THE PART THAT IS AFFIRMATIVELY CLEAN. Whatever North Dakota's posture on plate
|
|
50
|
+
ARTWORK, the plate's mandated elements live in the Century Code — the "Peace
|
|
51
|
+
Garden State" slogan (§ 39-04-12), the reflectorization duty (§ 39-04-12), and the
|
|
52
|
+
blackout plate's black ground and white characters (§ 39-04-10.18). Edicts of
|
|
53
|
+
government are uncopyrightable at every level ({{PD-US-GovEdict}}), so those
|
|
54
|
+
specifications are freely usable EVEN IF the Badlands/bison artwork is not. This
|
|
55
|
+
is the cleanest legal path the dossier identifies and this file walks it.
|
|
56
|
+
emblem_rule: >-
|
|
57
|
+
PRD-PLATES §3's placeholder default applies to the BISON, the BADLANDS scene and
|
|
58
|
+
the THREE WHEAT STALKS. These are pictorial artwork described by NDDOT in prose,
|
|
59
|
+
not drawn in any statutory instrument, so nothing about them is cleared. Render
|
|
60
|
+
`emblem: {present: true, rendered: placeholder}`. State-seal misuse statutes are a
|
|
61
|
+
protection regime independent of copyright and are unresearched for North Dakota.
|
|
62
|
+
sources:
|
|
63
|
+
- "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR ONLY (PRD-PLATES §4): read to establish that North Dakota has NO section in the survey — a negative result, recorded as such"
|
|
64
|
+
- "https://www.dot.nd.gov/motor-vehicle/license-plates # NDDOT's own description of the artwork whose status is unresearched"
|
|
65
|
+
|
|
66
|
+
# ---------------------------------------------------------------------------
|
|
67
|
+
# The US standards chain. Voluntary, no federal mandate; the SAE J686 delegation
|
|
68
|
+
# trap is recorded once per jurisdiction file so each file stands alone.
|
|
69
|
+
# ---------------------------------------------------------------------------
|
|
70
|
+
us_standards:
|
|
71
|
+
no_federal_mandate: true
|
|
72
|
+
chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption. AAMVA writes recommendations in the declarative present; they must be read as RECOMMENDED PRACTICE, not requirement."
|
|
73
|
+
dimensions_delegated: "AAMVA §3.1 sends dimensions and bolt holes to SAE J686, whose own text is PAYWALLED and UNPINNED. No J686 dimension is quoted anywhere in this file."
|
|
74
|
+
geometry_available: "AAMVA §2.1 (jurisdiction name top-centre between the bolt holes, >=0.25 in above the number, >=0.125 in from the top edge, characters 0.75-1.0 in) and §2.2 (characters >=2.5 in high, >=0.25 in apart, stroke 0.2-0.4 in, >=1.25 in clear of top and bottom) are the renderable geometry this dataset may use."
|
|
75
|
+
retroreflectivity: "AAMVA §3.3: legible in daylight and at night from at least 75 feet; ASTM D4956-19 and ISO 7591:1982 clause 3; entrance angle 0.2 deg, observation angle -4 deg, minimum 45 cd/lx/m^2."
|
|
76
|
+
replacement_cycle_recommendation: "AAMVA §1.1 recommends a rolling or full replacement cycle not to exceed 7 to 10 years. North Dakota legislates NO replacement cycle at all — see replacement_cycle on us-nd-standard-2016."
|
|
77
|
+
source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
|
|
78
|
+
folklore_caution: >-
|
|
79
|
+
The "1956 AMA standardization agreement" commonly said to have fixed the 6x12 inch
|
|
80
|
+
plate is UNCITED in its Wikipedia source (a `citation needed` since 2017, copied
|
|
81
|
+
across articles — circular). It is recorded as COMMONLY REPEATED, UNSOURCED. North
|
|
82
|
+
Dakota's Century Code states no plate dimension at all, so this file makes no
|
|
83
|
+
dimension claim for North Dakota either (recorded gap).
|
|
84
|
+
|
|
85
|
+
# ---------------------------------------------------------------------------
|
|
86
|
+
# Display rules. North Dakota is a TWO-PLATE state with an unusual inversion for
|
|
87
|
+
# apportioned vehicles and truck tractors.
|
|
88
|
+
# ---------------------------------------------------------------------------
|
|
89
|
+
display_rules:
|
|
90
|
+
default: "TWO plates, front and rear. § 39-04-11: an individual may not operate a vehicle unless it has 'two number plates, bearing the distinctive number conspicuously displayed, horizontally and in an upright position, one on the front and one on the rear of the vehicle, each securely fastened'."
|
|
91
|
+
rear_only:
|
|
92
|
+
- "housetrailer: plates 'must be attached to the rear of the housetrailer' (§ 39-04-11)"
|
|
93
|
+
- "motorcycle and trailer: 'must be attached to the rear ... and may be displayed vertically' — North Dakota expressly permits VERTICAL display for these two classes, which most states do not (§ 39-04-11)"
|
|
94
|
+
single_plate_inversion: "§ 39-04-11: when only ONE plate is furnished for an apportioned vehicle registered under the International Registration Plan (§ 39-19-04) or a truck tractor, 'the plate must be attached to the front' — and for a semitrailer, the rear. A front-only plate in a two-plate state is the same outlier shape Florida has for truck tractors."
|
|
95
|
+
mounting: "§ 39-04-11: the bottom of each plate not less than twelve inches [30.48 cm] above the level surface on which the vehicle stands; mounted visibly so as to clearly display the number and the state name; kept free of mud, ice or snow 'as far as is reasonably possible' — a winter-state qualification worth noticing"
|
|
96
|
+
old_plates: "§ 39-04-11: all number plates, markers or evidence of registration except for the current year must be REMOVED from the vehicle"
|
|
97
|
+
ownership: "§ 39-04-11: 'All vehicle license plates issued by the department are the property of the department for the period for which the plates are valid' — the plate is state property, not the registrant's"
|
|
98
|
+
temporary_permit: "§ 39-04-11: a temporary registration permit from NDDOT or a licensed dealer is displayed on the rear window, the rearmost driver's-side window, or in the rear plate location, clearly visible and unobstructed"
|
|
99
|
+
sources:
|
|
100
|
+
- "https://ndlegis.gov/cencode/t39c04.pdf # NDCC § 39-04-11: two plates front and rear; housetrailer/motorcycle/trailer rear-only and vertical display; the apportioned/truck-tractor FRONT-only and semitrailer rear inversion; 12-inch mounting height; mud/ice/snow duty; removal of prior-year plates; plates are department property; temporary permit placement"
|
|
101
|
+
|
|
102
|
+
series:
|
|
103
|
+
|
|
104
|
+
# =========================================================================
|
|
105
|
+
# THE STANDARD-ISSUE SERIES — and the only series in group midwest-b with a
|
|
106
|
+
# month-precise, agency-stated introduction date.
|
|
107
|
+
# =========================================================================
|
|
108
|
+
- id: us-nd-standard-2016
|
|
109
|
+
class: standard
|
|
110
|
+
categories: [car, van, truck, bus]
|
|
111
|
+
period: { start: 2016 }
|
|
112
|
+
period_evidence: agency-stated-date
|
|
113
|
+
matching: strict
|
|
114
|
+
format:
|
|
115
|
+
pattern: "999 LLL"
|
|
116
|
+
regex: '\A\d{3} ?[A-Z]{3}\z'
|
|
117
|
+
regex_statutory: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
|
|
118
|
+
charset:
|
|
119
|
+
notes: >-
|
|
120
|
+
§ 39-04-12(1) is the whole statutory constraint on the serial: the plate bears
|
|
121
|
+
'a distinctive number for assignment to each vehicle', and 'the distinctive
|
|
122
|
+
number may be in figures or a combination of figures and letters and must be of
|
|
123
|
+
a size clearly distinguishable by law enforcement officers and individuals
|
|
124
|
+
generally'. NO WIDTH, NO ARRANGEMENT AND NO EXCLUDED LETTERS are stated
|
|
125
|
+
anywhere in Chapter 39-04. Whether North Dakota skips I/O/Q in the letter
|
|
126
|
+
group — as many states do — was NOT established (recorded gap).
|
|
127
|
+
pattern_note: >-
|
|
128
|
+
`regex` encodes the arrangement NDDOT states in its own words: 'The serial format
|
|
129
|
+
follows a "123 ABC" pattern.' `regex_statutory` encodes the outer bound the
|
|
130
|
+
Century Code actually permits (any figures, or any combination of figures and
|
|
131
|
+
letters, of unstated width) and is the honest bound for a North Dakota plate of
|
|
132
|
+
unknown vintage.
|
|
133
|
+
progression: "not established (recorded gap) — NDDOT states the format but not the issuing order"
|
|
134
|
+
design:
|
|
135
|
+
plate_dimension_note: >-
|
|
136
|
+
NORTH DAKOTA LEGISLATES NO PLATE DIMENSION. Chapter 39-04 states none, and this
|
|
137
|
+
file will not import the 6x12 inch convention from the uncited 1956 folklore or
|
|
138
|
+
from SAE J686, whose text is unpinned. Recorded gap.
|
|
139
|
+
material: "reflective aluminum (NDDOT); § 39-04-12(1) requires plates to be 'of metal or other suitable material' and 'treated with a reflectorized material according to the specifications prescribed by the department'"
|
|
140
|
+
legibility: "§ 39-04-12(1): 'To reduce highway accidents at night all number plates and temporary registration permits must be legible for a minimum distance of one hundred feet [30.48 meters] to an approaching motorist by day or night with lawful headlight beams and without other illumination'"
|
|
141
|
+
legend_top: "Legendary"
|
|
142
|
+
legend_state: "North Dakota"
|
|
143
|
+
legend_bottom_left: "Peace Garden State"
|
|
144
|
+
legend_rule: >-
|
|
145
|
+
THE SLOGAN IS STATUTORY, WHICH IS UNUSUAL. § 39-04-12(1) requires number plates
|
|
146
|
+
to bear 'the name of the state, either in full or by abbreviation, the number of
|
|
147
|
+
the year, the slogan "Peace Garden State" and a distinctive number'. So "Peace
|
|
148
|
+
Garden State" is not a design choice the department could drop — it is mandated
|
|
149
|
+
text. "Legendary", by contrast, is a DEPARTMENTAL addition described only by
|
|
150
|
+
NDDOT and appearing in no instrument.
|
|
151
|
+
graphic:
|
|
152
|
+
present: true
|
|
153
|
+
rendered: placeholder
|
|
154
|
+
description: "NDDOT's own description: 'a scenic depiction of the state's Badlands, highlighted by a gradient sky transitioning from light blue to orange and yellow, symbolizing a sunrise. A bison stands prominently in the foreground ... while three wheat stalks flank the state's name'"
|
|
155
|
+
emblem: { present: true, rendered: placeholder }
|
|
156
|
+
colour_note: >-
|
|
157
|
+
NO HEX IS RECORDED FOR THIS SERIES, DELIBERATELY. NDDOT describes a GRADIENT sky
|
|
158
|
+
('light blue to orange and yellow'), and a gradient is not a colour value — a
|
|
159
|
+
single background hex would be a fabrication, not an approximation. Neither the
|
|
160
|
+
Century Code nor NDDOT states a character colour. Both are recorded as gaps
|
|
161
|
+
rather than invented, which is why `background` and `foreground` are absent here
|
|
162
|
+
while the blackout series below carries statutory hexes.
|
|
163
|
+
band: { side: none }
|
|
164
|
+
rear_differs: false
|
|
165
|
+
replacement_cycle:
|
|
166
|
+
years: null
|
|
167
|
+
note: >-
|
|
168
|
+
NORTH DAKOTA LEGISLATES NO REPLACEMENT CYCLE. Chapter 39-04 contains no
|
|
169
|
+
counterpart to Florida's 10-year rule, South Dakota's seven-year redesign duty or
|
|
170
|
+
Kansas's five-year reissue cycle. § 39-04-12(1) instead provides for an annual
|
|
171
|
+
'year plate, tab, or sticker'. The 2016 base has therefore run for a decade with
|
|
172
|
+
no statutory expiry, against AAMVA §1.1's recommended 7-10 year ceiling.
|
|
173
|
+
fleet_option: "§ 39-04-12(2): an owner of a fleet of 100 or more vehicles may be given plates valid for as many as SIX consecutive years, exempt from annual validation evidence, against a corporate surety bond"
|
|
174
|
+
region_encoding: none
|
|
175
|
+
sources:
|
|
176
|
+
- "https://www.dot.nd.gov/motor-vehicle/license-plates # NDDOT, verbatim: 'Introduced in November 2016'; the Badlands/gradient-sky/bison/three-wheat-stalks design; the slogans 'Legendary' above the state name and 'Peace Garden State' at the bottom left; 'The serial format follows a \"123 ABC\" pattern'; 'reflective aluminum'"
|
|
177
|
+
- "https://ndlegis.gov/cencode/t39c04.pdf # NDCC § 39-04-12(1): state name, year number, the MANDATED slogan 'Peace Garden State', the distinctive number in figures or figures-and-letters, the 100-foot legibility rule, reflectorized material, annual year plate/tab/sticker; § 39-04-12(2) the 100-vehicle fleet six-year plate"
|
|
178
|
+
- "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf # AAMVA Ed.3 §1.1, the 7-10 year replacement recommendation North Dakota has no counterpart to"
|
|
179
|
+
notes: >-
|
|
180
|
+
NORTH DAKOTA STANDARD ISSUE, THE 2016 BADLANDS BASE. The id is dated because the
|
|
181
|
+
date is real: NDDOT states 'Introduced in November 2016' on its own license-plate
|
|
182
|
+
page, so `period_evidence: agency-stated-date` and 2016 is a genuine claim rather
|
|
183
|
+
than the statute-edition upper bound the rest of this group carries. The month is
|
|
184
|
+
recorded here in prose because the runs shape takes integer years only.
|
|
185
|
+
THE ONE SERIES BACK IS A RECORDED GAP: NDDOT describes only the current base, the
|
|
186
|
+
Century Code is design-silent, and no primary establishing North Dakota's
|
|
187
|
+
pre-November-2016 base or its period was obtained. Rather than mint a series on an
|
|
188
|
+
enthusiast-site era table, it is omitted and recorded here — the L2 brief asks for
|
|
189
|
+
one series back where it can be sourced, not for a guess.
|
|
190
|
+
|
|
191
|
+
# =========================================================================
|
|
192
|
+
# BLACKOUT — the only series in group midwest-b with STATUTORY COLOUR VALUES.
|
|
193
|
+
# =========================================================================
|
|
194
|
+
- id: us-nd-blackout
|
|
195
|
+
class: specialty
|
|
196
|
+
categories: [car, truck, motorcycle]
|
|
197
|
+
period: { start: 2025 }
|
|
198
|
+
period_evidence: instrument-in-force-upper-bound
|
|
199
|
+
matching: strict
|
|
200
|
+
format:
|
|
201
|
+
pattern: "999 LLL"
|
|
202
|
+
regex: '\A\d{3} ?[A-Z]{3}\z'
|
|
203
|
+
regex_statutory: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
|
|
204
|
+
charset: { notes: "§ 39-04-10.18 fixes this plate's COLOURS and its eligibility but says nothing about its serial; the § 39-04-12(1) grammar therefore applies unchanged" }
|
|
205
|
+
pattern_note: >-
|
|
206
|
+
ARRANGEMENT INHERITED, NOT SEPARATELY SOURCED. NDDOT says the blackout plate
|
|
207
|
+
'maintains all required plate elements such as registration decals and
|
|
208
|
+
identification numbers', which implies but does not state that it carries the
|
|
209
|
+
standard 123 ABC arrangement. The inheritance is recorded as an assumption here
|
|
210
|
+
and `regex_statutory` is the honest bound. Flagged as a gap.
|
|
211
|
+
design:
|
|
212
|
+
background: { color: "#000000", finish: retroreflective, hex_basis: statute }
|
|
213
|
+
foreground: "#FFFFFF"
|
|
214
|
+
colour_rule: >-
|
|
215
|
+
§ 39-04-10.18(2), verbatim: 'Blackout number plates issued under this section must
|
|
216
|
+
have: a. A solid black background; and b. White numbers and letters.' THE
|
|
217
|
+
LEGISLATURE NAMED THE COLOUR VALUES. That is rare enough to be worth flagging —
|
|
218
|
+
contrast Florida, whose legislature required historic plates to be 'of a
|
|
219
|
+
distinguishing color' and named none, and contrast this file's own standard
|
|
220
|
+
series, whose colours are unrecorded because nobody official stated them. Black
|
|
221
|
+
and white are unambiguous as named colours, so these two hexes are the only
|
|
222
|
+
`hex_basis: statute` values in group midwest-b.
|
|
223
|
+
emblem: { present: false }
|
|
224
|
+
note: "NDDOT: 'The blackout design maintains all required plate elements such as registration decals and identification numbers, ensuring it meets legal standards'"
|
|
225
|
+
eligibility: "§ 39-04-10.18(3): the director may issue blackout plates ONLY to the owner of a passenger motor vehicle, a truck whose registered gross weight does not exceed 20,000 pounds [9071.85 kg], or a motorcycle"
|
|
226
|
+
fee: "$25.00 per registration period in addition to all other registration fees (§ 39-04-10.18(1))"
|
|
227
|
+
region_encoding: none
|
|
228
|
+
sources:
|
|
229
|
+
- "https://ndlegis.gov/cencode/t39c04.pdf # NDCC § 39-04-10.18: the $25 per-period fee; (2) 'a solid black background' and 'white numbers and letters'; (3) the passenger / <=20,000 lb truck / motorcycle eligibility limit"
|
|
230
|
+
- "https://www.dot.nd.gov/motor-vehicle/license-plates/blackout-plate # NDDOT: 'solid black background with crisp white lettering'; available for 'passenger cars, light trucks, and motorcycles'; 'Like other specialty plates, it comes with an additional fee'; the plate 'maintains all required plate elements'"
|
|
231
|
+
notes: >-
|
|
232
|
+
BLACKOUT PLATES. Two things make this series worth its own entry rather than a
|
|
233
|
+
colour sub-entry on the standard series. First, the colours differ AND they are
|
|
234
|
+
legislated, so under PRD-PLATES §2.3 the design difference is its own series and
|
|
235
|
+
the values are sourced to an edict. Second, the eligibility rule is a genuine
|
|
236
|
+
restriction — a truck over 20,000 lb registered gross weight cannot have one — so
|
|
237
|
+
the series scopes narrower than its jurisdiction default, which is exactly the
|
|
238
|
+
case `categories:` exists to carry.
|
|
239
|
+
PERIOD CAVEAT: `start: 2025` is an UPPER BOUND from the Century Code edition read,
|
|
240
|
+
not a real date. NDDOT calls the plate 'new' and 'long-awaited', so the true start
|
|
241
|
+
is recent, but the session law that added § 39-04-10.18 was not pinned in this pass
|
|
242
|
+
and the chapter text as published carries no source note. Recorded rather than
|
|
243
|
+
guessed. North Dakota and Iowa both run statutory blackout plates (Iowa Code
|
|
244
|
+
§ 321.34(11C)) — a small Midwestern convergence worth noting for the encyclopedia.
|
|
245
|
+
|
|
246
|
+
# =========================================================================
|
|
247
|
+
# PERSONALIZED — the character caps are statutory and differ by vehicle type.
|
|
248
|
+
# =========================================================================
|
|
249
|
+
- id: us-nd-personalized
|
|
250
|
+
class: personalized
|
|
251
|
+
categories: [car, van, truck, trailer, motorcycle]
|
|
252
|
+
period: { start: 2025 }
|
|
253
|
+
period_evidence: instrument-in-force-upper-bound
|
|
254
|
+
matching: strict
|
|
255
|
+
format:
|
|
256
|
+
pattern: "LLLLLLL"
|
|
257
|
+
regex: '\A[A-Z]{1,7}\z'
|
|
258
|
+
regex_statutory: '\A[A-Z0-9]{1,7}\z'
|
|
259
|
+
charset:
|
|
260
|
+
notes: >-
|
|
261
|
+
§ 39-04-10.3, verbatim: plates 'marked with not more than seven numerals,
|
|
262
|
+
letters, or combinations of numerals and letters'. For MOTORCYCLES the cap
|
|
263
|
+
drops: 'The special license plates for motorcycles may contain not more than
|
|
264
|
+
six numerals, letters, or a combination of not more than six numerals and
|
|
265
|
+
letters.' The statute also provides that 'A personal plate containing a
|
|
266
|
+
restricted character may not be renewed' — North Dakota's restricted-character
|
|
267
|
+
list itself is not in Chapter 39-04 and was not obtained (recorded gap).
|
|
268
|
+
pattern_note: "`regex` is the letters-only shape most vanity configurations take; `regex_statutory` is the true statutory frame (any mix of up to seven alphanumerics). The six-character motorcycle cap is a narrower bound not separately encoded."
|
|
269
|
+
design:
|
|
270
|
+
note: "personalization is a serial-source difference applied over the standard or an eligible specialty design; no distinct design is prescribed"
|
|
271
|
+
emblem: { present: true, rendered: placeholder }
|
|
272
|
+
fee: "$25.00 per registration period, waived where the plate is a gold star, military sacrifice or prisoner-of-war plate; a one-time $100.00 fee for vehicles registered as collector vehicles under § 39-04-10.6 (§ 39-04-10.3)"
|
|
273
|
+
transferable: "on sale or transfer the owner removes the plates (§ 39-04-36) and may transfer them to a replacement motor vehicle on payment of the transfer fee (§ 39-04-10.3)"
|
|
274
|
+
region_encoding: none
|
|
275
|
+
sources:
|
|
276
|
+
- "https://ndlegis.gov/cencode/t39c04.pdf # NDCC § 39-04-10.3: the seven-character cap, the six-character motorcycle cap, the $25 per-period fee and its gold-star/military-sacrifice/POW waivers, the $100 collector-vehicle one-time fee, the restricted-character non-renewal rule, availability for trailers/travel trailers/motorcycles, and transfer to a replacement vehicle"
|
|
277
|
+
notes: >-
|
|
278
|
+
PERSONALIZED PLATES. Modelled as its own series because the SERIAL SOURCE differs —
|
|
279
|
+
owner-chosen rather than department-assigned — which is a format property even
|
|
280
|
+
where the character frame is shared. North Dakota is one of the few states in this
|
|
281
|
+
group to legislate a SEPARATE, SMALLER cap for motorcycles (six rather than seven),
|
|
282
|
+
and to make a personalized plate available on PERMANENTLY registered collector
|
|
283
|
+
vehicles for a one-time fee, which is why the categories list includes trailers.
|
|
284
|
+
|
|
285
|
+
# =========================================================================
|
|
286
|
+
# ANTIQUE — a rolling forty-year threshold, permanent, and single-plate by an
|
|
287
|
+
# express override of the two-plate rule.
|
|
288
|
+
# =========================================================================
|
|
289
|
+
- id: us-nd-antique
|
|
290
|
+
class: historic
|
|
291
|
+
categories: [car, truck]
|
|
292
|
+
period: { start: 2025 }
|
|
293
|
+
period_evidence: instrument-in-force-upper-bound
|
|
294
|
+
matching: recall-only
|
|
295
|
+
format:
|
|
296
|
+
pattern: "999999"
|
|
297
|
+
regex: '\A[A-Z0-9]{1,7}\z'
|
|
298
|
+
pattern_note: >-
|
|
299
|
+
REPRESENTATIVE SHAPE ONLY. § 39-04-10.4(1) says the department 'shall design and
|
|
300
|
+
issue a distinctive number plate for this purpose' and specifies nothing about
|
|
301
|
+
the serial, so no arrangement is sourced. The regex is deliberately the wide
|
|
302
|
+
alphanumeric shape and `matching: recall-only` says so: a hit is a shape hit, not
|
|
303
|
+
a well-formedness claim for this series.
|
|
304
|
+
design:
|
|
305
|
+
note: "'a distinctive number plate' designed by the department (§ 39-04-10.4(1)); no colour, dimension or legend is stated in the Century Code"
|
|
306
|
+
emblem: { present: true, rendered: placeholder }
|
|
307
|
+
eligibility: "any motor vehicle AT LEAST FORTY YEARS OLD — a ROLLING threshold, so eligibility changes silently every year and this series needs re-auditing on a cadence that a fixed-cutoff regime would not"
|
|
308
|
+
validity: "permanently licensed on payment of a $10.00 registration fee (§ 39-04-10.4(1))"
|
|
309
|
+
year_of_manufacture_option: >-
|
|
310
|
+
§ 39-04-10.4(1): in lieu of the distinctive plate the owner may, AT THE DIRECTOR'S
|
|
311
|
+
DISCRETION, display a number plate from the vehicle's year of manufacture — or, for
|
|
312
|
+
military vehicles, military identification numbers — provided it would not duplicate
|
|
313
|
+
a number in the department's records and is legible and restored to the department's
|
|
314
|
+
satisfaction. A year-of-manufacture regime means a lawfully displayed North Dakota
|
|
315
|
+
plate may belong to ANY historical series, which is a real trap for a parser: the
|
|
316
|
+
plate on the car is not evidence of the era of its registration.
|
|
317
|
+
display_override: "§ 39-04-10.4(1): 'Notwithstanding section 39-04-11, only one number plate needs to be displayed' — an express carve-out from the two-plate rule"
|
|
318
|
+
use_restriction: "vehicles registered under this section 'may not be used in the routine functions of a business or farming operation' (§ 39-04-10.4(1))"
|
|
319
|
+
region_encoding: none
|
|
320
|
+
sources:
|
|
321
|
+
- "https://ndlegis.gov/cencode/t39c04.pdf # NDCC § 39-04-10.4(1): the forty-year rolling threshold, the $10 permanent registration, the department-designed distinctive plate, the year-of-manufacture and military-identification alternative with its duplication and legibility conditions, the single-plate override of § 39-04-11, and the business/farming use restriction; (2) the permanent personalized-plate alternative at a one-time $100 fee"
|
|
322
|
+
notes: >-
|
|
323
|
+
ANTIQUE MOTOR VEHICLES. North Dakota sets its historic threshold by a ROLLING forty
|
|
324
|
+
years, the opposite design choice to Florida's fixed model-year-1945 Horseless
|
|
325
|
+
Carriage cutoff — and a plates dataset must model both, because only the rolling
|
|
326
|
+
kind silently changes eligibility every year and needs re-auditing. The
|
|
327
|
+
year-of-manufacture option is the more consequential fact for the parse layer: it
|
|
328
|
+
means a currently valid North Dakota registration can be displayed on a plate from
|
|
329
|
+
any past series, so a period inference drawn from plate DESIGN is unsafe for this
|
|
330
|
+
class of vehicle.
|
|
331
|
+
|
|
332
|
+
# =========================================================================
|
|
333
|
+
# MANUFACTURER / FACTORY REPRESENTATIVE — bound to a person and a role, not to
|
|
334
|
+
# a vehicle, which is why `binding` is overridden here.
|
|
335
|
+
# =========================================================================
|
|
336
|
+
- id: us-nd-manufacturer
|
|
337
|
+
class: dealer
|
|
338
|
+
categories: [car, van, truck]
|
|
339
|
+
period: { start: 2025 }
|
|
340
|
+
period_evidence: instrument-in-force-upper-bound
|
|
341
|
+
matching: recall-only
|
|
342
|
+
format:
|
|
343
|
+
pattern: "999999"
|
|
344
|
+
regex: '\A[A-Z0-9]{1,7}\z'
|
|
345
|
+
pattern_note: "REPRESENTATIVE SHAPE ONLY. § 39-04-10.1 says the plate 'must be designed by the director' and states no serial grammar at all; the regex is the wide alphanumeric shape and `matching: recall-only` marks it as a shape hit."
|
|
346
|
+
design:
|
|
347
|
+
note: "'designed by the director' (§ 39-04-10.1); no design property is stated in the Century Code"
|
|
348
|
+
emblem: { present: true, rendered: placeholder }
|
|
349
|
+
binding: business
|
|
350
|
+
eligibility: "a RESIDENT FACTORY REPRESENTATIVE of a motor vehicle manufacturer, for the single vehicle used in the course of that employment; separately, a manufacturer of motor vehicles may use a manufacturer plate on its DEMONSTRATION vehicles, issued in the manufacturer's name and used solely for demonstration by the registrant or its designated employees"
|
|
351
|
+
fee: "$150.00 for a twelve-month period, prorated monthly if procured mid-period; procurement is IN LIEU OF any other registration fee, sales tax or use tax on the vehicle (§ 39-04-10.1)"
|
|
352
|
+
region_encoding: none
|
|
353
|
+
sources:
|
|
354
|
+
- "https://ndlegis.gov/cencode/t39c04.pdf # NDCC § 39-04-10.1: the resident factory representative, the director-designed plate, the $150 twelve-month fee and monthly proration, the in-lieu-of-tax effect, the personal-use and single-vehicle restrictions, retention of the plate across replacement vehicles, and the separate manufacturer demonstration-vehicle entitlement"
|
|
355
|
+
notes: >-
|
|
356
|
+
MANUFACTURER PLATES. `binding: business` for the same reason as Germany's rote
|
|
357
|
+
Kennzeichen and Florida's dealer plate: the plate follows the representative or the
|
|
358
|
+
manufacturer, not a vehicle — § 39-04-10.1 says so twice, first by tying the plate
|
|
359
|
+
to the vehicle 'used by the factory representative in the course of employment' and
|
|
360
|
+
then by providing that on sale of that vehicle the plate is RETAINED and reused on
|
|
361
|
+
the replacement. CLASS CAVEAT: recorded as `dealer`, since _meta/classes.yml has no
|
|
362
|
+
`manufacturer` value and the dealer definition ('trade/garage plates bound to a
|
|
363
|
+
business, not a vehicle') fits the binding if not the trade — the same caveat
|
|
364
|
+
us-fl-manufacturer carries.
|
|
365
|
+
|
|
366
|
+
# =========================================================================
|
|
367
|
+
# SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5. No individual designs.
|
|
368
|
+
# =========================================================================
|
|
369
|
+
- id: us-nd-specialty-index
|
|
370
|
+
class: specialty
|
|
371
|
+
categories: [car, van, truck, motorcycle]
|
|
372
|
+
period: { start: 2025 }
|
|
373
|
+
period_evidence: instrument-in-force-upper-bound
|
|
374
|
+
matching: strict
|
|
375
|
+
format:
|
|
376
|
+
pattern: "999 LLL"
|
|
377
|
+
regex: '\A\d{3} ?[A-Z]{3}\z'
|
|
378
|
+
regex_statutory: '\A[A-Z0-9](?: ?[A-Z0-9])*\z'
|
|
379
|
+
charset: { notes: "specialty plates carry ordinary serials on an alternative design; the § 39-04-12(1) grammar applies unchanged, and many North Dakota specialty series are additionally available personalized under § 39-04-10.3" }
|
|
380
|
+
design:
|
|
381
|
+
note: "one design per authorised program; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here"
|
|
382
|
+
emblem: { present: true, rendered: placeholder }
|
|
383
|
+
program_index:
|
|
384
|
+
count_statutory: 18
|
|
385
|
+
count_basis: >-
|
|
386
|
+
COUNTED FROM THE STATUTE, NOT FROM A BROCHURE — which makes this one of the few
|
|
387
|
+
defensible specialty counts in the group. Chapter 39-04 authorises specialty and
|
|
388
|
+
special-purpose plate programs in eighteen numbered sections: § 39-04-10 (amateur
|
|
389
|
+
radio), 10.1 (manufacturer), 10.2 (mobility-impaired), 10.3 (personalized), 10.4
|
|
390
|
+
(antique), 10.5 (prisoner of war), 10.6 (collector), 10.7 (farm vehicles), 10.8
|
|
391
|
+
(national guard), 10.9 (law enforcement), 10.10 (North Dakota veterans), 10.11
|
|
392
|
+
(firefighter's association), 10.12 (Future Farmers of America foundation), 10.13
|
|
393
|
+
(public or nonprofit organization), 10.14 (gold star), 10.15 (patriotic), 10.16
|
|
394
|
+
(volunteer emergency responders), 10.17 (military sacrifice), 10.18 (blackout).
|
|
395
|
+
Note the count is of AUTHORISING SECTIONS, not of designs: § 39-04-10.13 alone is
|
|
396
|
+
an open-ended public-or-nonprofit-organization program that can carry many
|
|
397
|
+
designs, so the number of DESIGNS is strictly greater and was not obtained.
|
|
398
|
+
count_caveat: >-
|
|
399
|
+
NDDOT publishes no specialty-plate count and no consolidated catalogue was
|
|
400
|
+
located, so no agency figure exists to reconcile against the statutory count. The
|
|
401
|
+
discrepancy between 'authorising sections' and 'designs offered' is recorded, not
|
|
402
|
+
resolved (PRD-PLATES §5.3 — disagreements are recorded, never averaged).
|
|
403
|
+
official_list_url: "https://www.dot.nd.gov/motor-vehicle/license-plates"
|
|
404
|
+
organization_program: "§ 39-04-10.13 is the open-ended door: a public or nonprofit organization may have a number plate authorised, which is the mechanism by which the catalogue grows without further legislation"
|
|
405
|
+
region_encoding: none
|
|
406
|
+
sources:
|
|
407
|
+
- "https://ndlegis.gov/cencode/t39c04.pdf # NDCC §§ 39-04-10 through 39-04-10.18: the eighteen authorising sections counted above, including § 39-04-10.13's open-ended public/nonprofit organization program"
|
|
408
|
+
- "https://www.dot.nd.gov/motor-vehicle/license-plates # NDDOT's license-plate index page — the official entry point; publishes no count and no consolidated specialty catalogue"
|
|
409
|
+
notes: >-
|
|
410
|
+
THE SPECIALTY PROGRAM INDEX — one entry standing for the whole program, which is
|
|
411
|
+
what PRD-PLATES §2.5 asks for at this gate. North Dakota is the cleanest counting
|
|
412
|
+
case in group midwest-b because its programs are created by NUMBERED STATUTORY
|
|
413
|
+
SECTIONS rather than by departmental discretion, so the index can be counted from an
|
|
414
|
+
edict of government instead of from a marketing page. The honest caveat is recorded
|
|
415
|
+
in `count_caveat`: sections are not designs, and § 39-04-10.13 makes the design
|
|
416
|
+
count unbounded from the statute alone.
|
|
417
|
+
NOTE THE OVERLAP: us-nd-blackout above is one of these eighteen programs
|
|
418
|
+
(§ 39-04-10.18) and is broken out as its own series only because its colours are
|
|
419
|
+
legislated as VALUES. It is counted once here and specified once there.
|