docs/research/profile-legal-es-pl-de-li-ca-2026-10-23.md +23 −0
@@ -0,0 +1,23 @@
+# Spain driving, Poland driving, German flower cover, Liechtenstein possession, Canada possession, 23 October 2026
+
+Issues #35, #36, #38, #39 and #40. Scores were left unchanged.
+
+## Spain
+
+The consolidated traffic law, Real Decreto Legislativo 6/2015, was read. Article 14 forbids driving with drugs in the body and leaves out a substance used under a doctor's prescription for treatment, when the driver can still drive with the care article 10 requires. Article 77(c) makes that presence a very serious offence, and article 80(2)(a) sets the fine at 1,000 euros. Annex II assigns six licence points. The default rule is still presence without a threshold, so the driving status stays `zero`. The Dirección General de Tráfico page named in the issue was not opened.
+
+## Poland
+
+The Code of Petty Offences consolidation (DU/2023/2119) contains the after-use driving offence: arrest or a fine of at least 2,500 zlotys, and a driving ban. The HTML conversion dropped the article heading above that paragraph. The District Court in Gliwice, VI Ka 39/16, names that offence as article 87 §1 and the criminal offence as article 178a. The court holds that an inactive THC metabolite shows only earlier use, and that the crime depends on the effect on that driver rather than on a concentration. There is no statutory THC cutoff. The driving status is `consumption`, because the misdemeanour is driving after use and the statute sets no laboratory limit. SAOS 355783 and the 2026 law-firm overview named in the issue were not opened.
+
+## Germany
+
+Sozialgesetzbuch V § 31(6) covers extracts in standardised quality, and medicines containing dronabinol or nabilone, and requires a six-month trial of an authorised cannabis finished medicine first. The Kassenärztliche Bundesvereinigung page, updated in July and August 2026, dates the end of statutory cover for dried flower at 30 July 2026. Patients already on an extract or a compounded preparation before that date are outside the new six-month trial. Switching off flower needs a fresh approval unless the doctor is excused. The health ministry FAQ dates the same statute's entry into force as 29 July 2026. The history entry uses 30 July, the date the doctors' association gives for the prescribing change, and records the ministry's 29 July in the description. The KV Sachsen page named in the issue was not opened. Possession stays at 5.
+
+## Liechtenstein
+
+The official HTML consolidation of the 1983 Narcotics Act was read. Article 21 punishes consumption, and an article 20 act done for one's own use, with a fine of up to 50,000 francs, and with up to six months in prison only if the fine cannot be collected. Article 21(2) allows the court to waive punishment in a minor case. The one-year maximum is the negligent form of article 20, a different offence. Possession stays at 1. The parliamentary BuA page was not opened.
+
+## Canada
+
+Cannabis Act section 8, current to 30 September 2026, forbids an adult from possessing more than 30 g of dried cannabis in public, and from possessing any cannabis the person knows is illicit. Health Canada's growing page says an adult may grow up to four plants from lawful seed and share up to 30 g of that cannabis with another adult. The possession sentence no longer requires a licensed retail source. Possession stays at 6, cultivation at 4 and sharing at 5. The "Taking stock" page was not opened.
scripts/history-scope.test.cjs +33 −0
@@ -369,2 +369,35 @@ test("Gandaki, Ohio gifts and Singapore resin thresholds follow the texts that w
assert.equal(sg.scores.enforcement, 0);
});
+
+test("Spain, Poland, Germany, Liechtenstein and Canada follow the texts that were read", () => {
+ const es = y.load(fs.readFileSync("countries/es.yaml", "utf8"));
+ const pl = y.load(fs.readFileSync("countries/pl.yaml", "utf8"));
+ const de = y.load(fs.readFileSync("countries/de.yaml", "utf8"));
+ const li = y.load(fs.readFileSync("countries/li.yaml", "utf8"));
+ const ca = y.load(fs.readFileSync("countries/ca/index.yaml", "utf8"));
+ const flower = byId["germany-flower-reimbursement-ended-2026"];
+ assert.equal(es.context.driving.status, "zero");
+ assert.match(es.context.driving.text, /doctor's prescription/);
+ assert.match(es.context.driving.text, /1,000 euros/);
+ assert.match(es.context.driving.text, /six licence points/);
+ assert.equal(pl.context.driving.status, "consumption");
+ assert.match(pl.context.driving.text, /article 87/);
+ assert.match(pl.context.driving.text, /inactive THC metabolite/);
+ assert.equal(pl.scores.possession, 1);
+ assert.match(de.context.medical.text, /30 July 2026/);
+ assert.match(de.context.medical.text, /six-month trial/);
+ assert.match(de.context.medical.text, /continue without the trial/);
+ assert.equal(flower.date, "2026-07-30");
+ assert.equal(flower.before, undefined);
+ assert.equal(de.scores.possession, 5);
+ assert.match(li.segments.possession.text, /50,000 francs/);
+ assert.match(li.segments.possession.text, /six months/);
+ assert.doesNotMatch(li.segments.possession.text, /one year/);
+ assert.equal(li.scores.possession, 1);
+ assert.doesNotMatch(ca.segments.possession.text, /licensed source/);
+ assert.match(ca.segments.possession.text, /knows is illicit/);
+ assert.match(ca.segments.possession.text, /grown at home/);
+ assert.equal(ca.scores.possession, 6);
+ assert.equal(ca.scores.cultivation, 4);
+ assert.equal(ca.scores.sharing, 5);
+});