Issue #3618369: The engine says sale where nothing is sold, and the documentation still calls a slot a session
Both vocabulary passes, in one commit because they are the same discipline and the same files.
Sale. Five user-facing strings in SlotSeatsForm and SlotSeatCommands said a seat was "out of sale", and the area-spread setting description said the house was "selling no slower". They now say "out of the offer" and "filling no slower": true whatever a place costs, and the module's own noun. The comments said it throughout, in 29 files, and say taken, offered, filling or rush instead.
Three uses are deliberately kept, because each one names what the engine is not: the basket-window description saying a held seat is "not unsold stock", the same sentence in docs/capacity-and-holds.md, and the OrphanedPlaces comment saying "rarely booked rather than rarely sold". Idiomatic "what this buys is" about a design trade is left alone too; it is not about a transaction.
French. The five changed strings are paired on both sides, so no msgid is left without an entry and no entry without a string. Three were the translation's own fault and are corrected: two rendered a booker as client where the English says only "human-facing" and "self-cancellation", and peut vendre par creneau turned "may take" into "may sell". Where the English client means a network client throttled by IP (flood control) or a software client contract, the French is a faithful translation and stays.
Session. 180 uses across nineteen pages of docs/ meant a slot and now say slot. The 21 that really are the visitor's web session are untouched: all nine in docs/cart.md, the per-session form token in docs/calendar.md, the anonymous-identity notes in docs/no-code-interaction-design.md, the cache-context discussion in docs/placement.md, docs/seating.md on strategies reading no session state, and a booker's session lifetime in docs/capacity-and-holds.md. Two more are a debugging session and an operator's arranging session.
Two headings were renamed, and the one internal link to either was updated with it; no other anchor pointed at them. One sentence that was wrong as written ("A resource is a session, a session has a start") now says a resource runs slots. docs/concepts.md states both rules once, where the vocabulary is introduced.
Verification. No behavior changes, so the existing suite is the check, plus the classes that assert on the changed wording. Every replacement was made by hand, per file, after reading the occurrence: the two rules collide in the same sentences often enough that a blanket substitution would have produced "one slot tariff per slot and tariff", which is exactly what it did produce in one heading before it was mended.
Checks: phpcs as CI runs it 0 after a reflow pass (six comment lines went over 80 columns and were rewrapped by hand). DrupalPractice 0. phpstan 0. cspell: 0 new unknown words, after replacing one word this branch had coined.