@johnmorrisdotca/kyogijo-stadiums 0.5.0 → 0.6.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.
Files changed (193) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/NOTICE.md +179 -3
  3. package/README.md +43 -11
  4. package/dist/arenas-entry.d.ts +4 -0
  5. package/dist/arenas-entry.js +3 -0
  6. package/dist/arenas.d.ts +125 -0
  7. package/dist/arenas.data.d.ts +2 -0
  8. package/dist/arenas.data.js +3763 -0
  9. package/dist/arenas.js +72 -0
  10. package/dist/atlas-entry.d.ts +3 -1
  11. package/dist/atlas-entry.js +3 -2
  12. package/dist/atlas.d.ts +37 -19
  13. package/dist/atlas.js +92 -7
  14. package/dist/background.js +2 -1
  15. package/dist/budo/describe.d.ts +13 -0
  16. package/dist/budo/describe.js +120 -0
  17. package/dist/budo/dojo.api.d.ts +64 -0
  18. package/dist/budo/dojo.api.js +46 -0
  19. package/dist/budo/dojo.d.ts +72 -0
  20. package/dist/budo/dojo.js +300 -0
  21. package/dist/budo/judo.d.ts +61 -0
  22. package/dist/budo/judo.js +109 -0
  23. package/dist/budo/karate.d.ts +29 -0
  24. package/dist/budo/karate.js +80 -0
  25. package/dist/budo/kendo.d.ts +18 -0
  26. package/dist/budo/kendo.js +44 -0
  27. package/dist/budo/kimarite.d.ts +19 -0
  28. package/dist/budo/kimarite.js +33 -0
  29. package/dist/budo/kit.d.ts +16 -0
  30. package/dist/budo/kit.js +24 -0
  31. package/dist/budo/kyudo.d.ts +28 -0
  32. package/dist/budo/kyudo.js +66 -0
  33. package/dist/budo/looks.d.ts +28 -0
  34. package/dist/budo/looks.js +58 -0
  35. package/dist/budo/parts.d.ts +32 -0
  36. package/dist/budo/parts.js +10 -0
  37. package/dist/budo/plan.d.ts +64 -0
  38. package/dist/budo/plan.js +139 -0
  39. package/dist/budo/room.d.ts +133 -0
  40. package/dist/budo/room.js +111 -0
  41. package/dist/budo/sumo.d.ts +31 -0
  42. package/dist/budo/sumo.js +71 -0
  43. package/dist/budo/tatami.d.ts +55 -0
  44. package/dist/budo/tatami.js +156 -0
  45. package/dist/budo/types.d.ts +192 -0
  46. package/dist/budo/types.js +2 -0
  47. package/dist/budo-entry.d.ts +22 -0
  48. package/dist/budo-entry.js +13 -0
  49. package/dist/budo.board.d.ts +28 -0
  50. package/dist/budo.board.js +81 -0
  51. package/dist/budo.score.d.ts +18 -0
  52. package/dist/budo.score.js +52 -0
  53. package/dist/budo.style.d.ts +6 -0
  54. package/dist/budo.style.js +67 -0
  55. package/dist/charts.baseball.js +1 -1
  56. package/dist/charts.js +4 -4
  57. package/dist/charts.soccer.js +3 -3
  58. package/dist/charts.types.d.ts +10 -0
  59. package/dist/colour.d.ts +4 -4
  60. package/dist/colour.js +4 -4
  61. package/dist/crowd.d.ts +11 -1
  62. package/dist/crowd.draw.js +15 -9
  63. package/dist/crowd.js +17 -2
  64. package/dist/draw.js +156 -31
  65. package/dist/element-entry.d.ts +2 -0
  66. package/dist/element-entry.js +1 -0
  67. package/dist/element.d.ts +2 -2
  68. package/dist/element.js +2 -1
  69. package/dist/emblems-source.d.ts +50 -0
  70. package/dist/emblems-source.js +56 -0
  71. package/dist/eras.d.ts +3 -1
  72. package/dist/eras.js +8 -3
  73. package/dist/features.js +73 -0
  74. package/dist/field.data.d.ts +16 -0
  75. package/dist/field.data.js +50 -0
  76. package/dist/fields.kit.d.ts +2 -2
  77. package/dist/fields.types.d.ts +9 -3
  78. package/dist/formations.js +18 -7
  79. package/dist/formations.sports.d.ts +8 -0
  80. package/dist/formations.sports.js +251 -0
  81. package/dist/frames.providers.js +9 -1
  82. package/dist/halls.d.ts +65 -0
  83. package/dist/halls.js +122 -0
  84. package/dist/heat.js +17 -10
  85. package/dist/heat.zones.d.ts +4 -2
  86. package/dist/heat.zones.js +55 -3
  87. package/dist/homeside.js +7 -0
  88. package/dist/index.d.ts +15 -3
  89. package/dist/index.js +8 -1
  90. package/dist/layers-entry.d.ts +2 -1
  91. package/dist/layers-entry.js +1 -0
  92. package/dist/layers.d.ts +2 -1
  93. package/dist/layers.env.d.ts +10 -1
  94. package/dist/layers.env.js +33 -3
  95. package/dist/layers.js +30 -11
  96. package/dist/layers.types.d.ts +9 -2
  97. package/dist/leagues/budo.d.ts +196 -0
  98. package/dist/leagues/budo.js +105 -0
  99. package/dist/leagues/hockey.js +41 -19
  100. package/dist/leagues/sources.js +21 -0
  101. package/dist/leagues/types.d.ts +1 -1
  102. package/dist/leagues.d.ts +4 -1
  103. package/dist/leagues.js +102 -2
  104. package/dist/lineup.codes.d.ts +23 -0
  105. package/dist/lineup.codes.js +122 -0
  106. package/dist/logo.d.ts +25 -0
  107. package/dist/logo.js +47 -0
  108. package/dist/outline.d.ts +1 -1
  109. package/dist/outline.js +17 -3
  110. package/dist/pageant.js +7 -3
  111. package/dist/pointer-entry.d.ts +2 -0
  112. package/dist/pointer-entry.js +2 -0
  113. package/dist/pointer.d.ts +113 -0
  114. package/dist/pointer.js +151 -0
  115. package/dist/pool.d.ts +7 -7
  116. package/dist/pool.figures.d.ts +57 -55
  117. package/dist/pool.figures.js +59 -55
  118. package/dist/pool.js +7 -7
  119. package/dist/pool.labels.js +2 -1
  120. package/dist/ranges.names.js +6 -0
  121. package/dist/road.draw.js +3 -2
  122. package/dist/road.js +2 -1
  123. package/dist/road.types.d.ts +3 -0
  124. package/dist/rules.d.ts +138 -0
  125. package/dist/rules.js +511 -0
  126. package/dist/rules.types.d.ts +4 -0
  127. package/dist/rules.types.js +64 -0
  128. package/dist/score.d.ts +3 -0
  129. package/dist/score.js +23 -1
  130. package/dist/situation.d.ts +135 -0
  131. package/dist/situation.draw.d.ts +34 -0
  132. package/dist/situation.draw.js +202 -0
  133. package/dist/situation.js +337 -0
  134. package/dist/situation.style.d.ts +2 -0
  135. package/dist/situation.style.js +45 -0
  136. package/dist/situation.types.d.ts +77 -0
  137. package/dist/situation.types.js +3 -0
  138. package/dist/situation.widgets.d.ts +39 -0
  139. package/dist/situation.widgets.js +129 -0
  140. package/dist/strings.d.ts +175 -1
  141. package/dist/strings.js +364 -20
  142. package/dist/style.js +9 -2
  143. package/dist/surfaces/artistic.d.ts +3 -3
  144. package/dist/surfaces/artistic.js +3 -3
  145. package/dist/surfaces/baseball.js +2 -0
  146. package/dist/surfaces/basketball.js +1 -1
  147. package/dist/surfaces/budo.d.ts +6 -0
  148. package/dist/surfaces/budo.js +104 -0
  149. package/dist/surfaces/dive.d.ts +3 -3
  150. package/dist/surfaces/dive.js +3 -3
  151. package/dist/surfaces/football.js +7 -0
  152. package/dist/surfaces/hockey.js +3 -2
  153. package/dist/surfaces/polo.d.ts +4 -4
  154. package/dist/surfaces/polo.js +5 -5
  155. package/dist/surfaces/pool.d.ts +1 -1
  156. package/dist/surfaces/pool.js +3 -3
  157. package/dist/surfaces/surface.d.ts +32 -0
  158. package/dist/surfaces/venue.d.ts +1 -1
  159. package/dist/surfaces/venue.js +1 -1
  160. package/dist/target-entry.d.ts +2 -0
  161. package/dist/target-entry.js +2 -0
  162. package/dist/target.d.ts +200 -0
  163. package/dist/target.js +525 -0
  164. package/dist/team.common.d.ts +1 -1
  165. package/dist/team.common.js +3 -3
  166. package/dist/team.formation.d.ts +3 -1
  167. package/dist/team.formation.js +3 -3
  168. package/dist/team.layers.d.ts +2 -2
  169. package/dist/team.layers.js +4 -1
  170. package/dist/team.lineup.d.ts +27 -0
  171. package/dist/team.lineup.js +207 -0
  172. package/dist/team.network.js +6 -5
  173. package/dist/team.shape.js +5 -5
  174. package/dist/team.types.d.ts +40 -1
  175. package/dist/tenants.data.js +848 -0
  176. package/dist/turn-entry.d.ts +2 -2
  177. package/dist/turn-entry.js +1 -1
  178. package/dist/turn.camera.d.ts +12 -1
  179. package/dist/turn.camera.js +18 -2
  180. package/dist/turn.dom.js +11 -9
  181. package/dist/turn.kit.d.ts +2 -2
  182. package/dist/turn.style.js +4 -3
  183. package/dist/types.d.ts +43 -7
  184. package/dist/units.js +7 -0
  185. package/dist/uprights.budo.d.ts +17 -0
  186. package/dist/uprights.budo.js +87 -0
  187. package/dist/uprights.js +10 -1
  188. package/dist/uprights.pools.js +4 -4
  189. package/dist/version.d.ts +1 -1
  190. package/dist/version.js +1 -1
  191. package/dist/zones-entry.d.ts +2 -0
  192. package/dist/zones-entry.js +2 -0
  193. package/package.json +39 -3
package/CHANGELOG.md CHANGED
@@ -7,6 +7,64 @@ All notable changes to this project are written here. The format follows
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.6.0] - 2026-10-14
11
+
12
+ Six budō sports and a dojo builder (39 sports in all), the situation of a game, lineups, zones, a pointer and goal mouths, the arenas of the NHL, the NBA, the WNBA and the PWHL (330 places on the atlas), and Dougu Sports 0.2.0 for an icon on every sport. The 3D view's keys, buttons and drag now turn the surface the same way.
13
+
14
+ ### Fixed
15
+
16
+ - **The 3D view turned the wrong way across.** A drag to the right (mouse, or a finger with `touch: "turn"` or a sideways swipe) carried the side of the surface nearest the eye to the left. The drag now takes hold of the surface, as the cube of kyuubu and most 3D viewers do: right carries the near side to the right and left to the left, and the Right and Left arrow keys turn the same way as a drag to that side. Dragging up and down was already right (down tips the top toward the eye) and is unchanged, as are the viewpoints, `set` and the buttons. `drag()` in `/turn` has the opposite sign for `dx`. A browser test drags a marker on the near boards and a unit test holds the signs.
17
+ - **The 3D view's buttons and the Up and Down keys turned the wrong way.** After the drag was corrected, the turn-left button turned the way a drag to the right does, and ArrowUp tipped the surface the way a drag down does. A drag, an arrow key and a button toward one side now all move the surface the same way: Left and Right carry the near side that way, Up tips it as a drag up does and Down as a drag down (the up and down buttons follow the keys; the drag's own pitch is unchanged). `nudge(view, "left" | "right" | "up" | "down", degrees)` in `/turn` is the step the keys and buttons share, and a unit test and a browser test hold the three together. The up and down buttons are now named for what they do, "Tip the surface away" and "Tip the surface toward you" (they were "Raise the view" and "Lower the view"), and the announcement says "Turned to 40 degrees, seen from 34 degrees above the floor" where it said "raised 34 degrees".
18
+ - **The demo had no icon on the deployed site.** The page's icon was an inline `data:` address, which a sanitizer in front of the deployed page turned into `about:invalid#zCSafez`. The site now ships a static `favicon.svg` and `apple-touch-icon.png` and every page (the demo, the API reference, the docs pages and the gallery) links them.
19
+ - **A football lineup's two teams are one size**, so the offence is not shrunk to fit its line.
20
+
21
+ ### Changed
22
+
23
+ - **The pools follow the World Aquatics Competition Regulations in force from February 2026.** Every citation of a pool figure, a goal and a diving distance is to that edition's numbering (Part Two Article 15 for the swimming pool, Part Four Article 15 and Appendix 2 for diving, Part Six Articles 20 and 21 for water polo, Part Seven Article 12 for artistic swimming), with the June 2025 number beside it. Three figures changed with it: the water polo field is at least 2.00 m deep everywhere (`WATER_POLO.depth`, was 1.80 m, 2.00 m at the Olympic Games and the World Championships); the diving depth at the plummet, `DIVING.H`, has the minima 3.40 m (1 m springboard), 3.70 (3 m), 3.20 (1 m platform), 3.50 (3 m), 3.70 (5 m), 4.10 (7.5 m) and 4.50 m (10 m), and 5.00 m preferred as before (they were 3.50, 3.80, 3.30, 3.60, 3.80, 4.30 and 5.00 m); and a starting block is at least 0.5 by 0.5 m (`SWIMMING.block.length` 0.5, was 0.6, which shows in the 3D view). The drawings of the pools do not change. Not found in the February 2026 text, and marked unverified where they are cited: the false start rope, a pool shared with artistic swimming at 3 m, the 5 m under the boards at the Olympic Games and the World Championships, the lane rope float's 0.15 m. The water polo goal is Part Six Article 21.6 (the old "Appendix 4" is now the video referee protocol) and the field hockey goal is "Field and Equipment Specifications 1.5 (Goals)" of the FIH Rules of Hockey 2026.
24
+ - **The Japanese words of the pools** keep the federation's own article numbers (水球競技ハンドブック 18.3.2 for 審判台; アーティスティックスイミング競技規則 27.2.8 and 27.2.7 for ジャッジ台 and スタート台), read again in the books of 2023-04-01 and 2026-04-23; the number given for the 5 m mark was the definition of a goal, and is now 18.3.1.
25
+
26
+ ### Added
27
+
28
+ - **A lineup takes the score to the strip.** A score drawn with a `lineup` layer puts its panel in the compact strip under the surface, as a pageant's `score: "auto"` does, and the situation's pill, scorebug or tag goes to the strip with it, so that nothing hides a player; what the situation lights (a runner's base, a drive's arrows) is drawn under the players. The new option `score: "centre" | "strip" | "auto"` says it, and `score: "centre"` keeps the panel over the surface ([score and layout](./docs/score.md)).
29
+ - **Dougu Sports 0.2.0** (the development dependency of the demo and the tests): 167 emblems, an icon for each of the 38 sports including judo, karate, kendo, sumo and kyudo; the dojo takes the judo one.
30
+ - **The situation of a game: `situation`** ([docs/situation.md](./docs/situation.md)). Hockey's skaters (a power play or an empty net as a pill, `5v4 PP 1:42`, with the attacking zone tinted in the attacking team's colour and the empty net ringed), a delayed penalty, and a shootout as a strip of dots across centre ice (a goal filled, a miss hollow, the rounds after the third as sudden death); baseball's (softball's and the NPB's) runners lit on the diamond and a scorebug with the outs, the inning and the count; football's line of scrimmage (blue), first-down line (yellow), red zone and down-and-distance tag, and `drive` for a drive chart of arrows by result. The CFL's field of 110 yards with end zones of 20 and its three downs are respected. The badge and the compact card show the pill, the scorebug or the tag in place of the surface's picture, and the description says it in English and Japanese. The Japanese is for review.
31
+ - **`situationText`, `readSituation`, `DRIVE_CODES` and `KYOGIJO_SITUATION_STYLE`**, and the types `Situation`, `HockeySituation`, `BaseballSituation`, `FootballSituation`, `DriveLeg`, `DriveResult`, `ShootoutRound`, `SituationRead`.
32
+ - **Two rinks:** `league: "olympic"`, the IIHF rink at 60 by 26 m (the IIHF's statement of 9 December 2025 gives it for Milano Cortina 2026, as Beijing 2022 and the NHL's Global Series arenas), and `league: "boston-garden"`, 58.2 by 25.3 m, with the NHL's figures for the rest.
33
+ - **`rulesFor("nhl", year).rules.twoLinePass`:** the centre line judged the offside pass from 1943-44 to 2004-05 (data only: no mark on the ice changes).
34
+ - The demo has a Situation group of controls, each a finger wide.
35
+ - Not found, so not drawn, and set down in [docs/references.md](./docs/references.md): Buffalo Memorial Auditorium's and Maple Leaf Gardens' ice, the NHL goal crease before today's, the NHL's blue lines before 1998-99.
36
+ - **Lineups** ([docs/team-shape.md](./docs/team-shape.md#lineups)). A new kind of data layer, `lineup`: a team's players placed by position code, with no coordinates. `{ kind: "lineup", side, formation?, players: [{ pos, name, number, flag?, captain?, line? }] }` reads where each position stands from a formation, draws each player as a disc or a jersey (`shape`) with the shirt number in it and the name under it (a long name shrinks to fit, then is cut with an ellipsis), a small "C" for the captain and a flag badge, and puts the visitors at the other end (`side: "away"`); two teams are two layers. Without a `formation` the one of the sport that places the most of the players is chosen. Short codes (`CB` for either centre-back, `D` for a defenceman, `OF`, the scorer's numbers 1 to 9, `HK`, `SH`...) are listed in `LINEUP_CODES`; hockey's second line is `line: 2`; a volleyball team turns by `rotation`; baseball's designated hitter is listed beside home plate. A lineup is not cut to the surface's outline unless `clip: "surface"`. Types `LineupLayer` and `LineupPlayer`; the table (`layerTable`) lists each place, its player and the captain, and each player with no place.
37
+ - **Formations for more sports** (`FORMATIONS` now holds 36): rugby union's fifteen, Australian football's eighteen, three cricket fielding presets (an attacking field with three slips, the one-day powerplay, defending the boundary), volleyball's six places of the rotation, handball's attack and 6-0 defence, a water polo attack, field hockey's 4-3-3 and 3-4-3, netball's seven positions, softball's defence, hockey's two lines, and a traditional basketball set; each with its position names in English and Japanese. `Formation.extra` lists places that a lineup draws and a `formation` layer does not (the designated hitter), `FormationPosition.size` scales a place's mark in a lineup, and `FormationSport` has thirteen sports.
38
+ - **The demo's address holds every control.** Sport, league, park, ground, season, size, layout, theme, 3D view and viewpoint, the looks (court, stripes, goals, half, flags, hardwood, crowd and its density, pageant and emblem, pool and track settings), the lineup, the placed points, the code tab and the game itself (names, abbreviations, scores, colours, penalties, logos, status, winner, competition, date, label) are in the address and restored from it, so a shared link reproduces the exact view; a field is written only when it differs from the sport's made-up game. The keys the page already had are unchanged. A "Copy link" button sits beside the code's Copy.
39
+ - **Click to place in the demo.** A toggle drops a point where the drawing is clicked and shows its coordinates (feet from the surface's top left, and metres) as the pointer moves; the toggle and the points are in the address (`drop` and `shots`) and in the code, and "Clear points" removes them. A Lineup choice draws made-up teams on sports that have formations.
40
+ - **Arenas: the homes of the NHL's, the NBA's, the WNBA's and the PWHL's clubs** ([docs/arenas.md](./docs/arenas.md)). `ARENAS` (from `/arenas` and the main entry; `ARENA_IDS`, `arenaById`, `arenaByName`, `arenasByName`, `arenaByWikidata`, `arenaNameIn`, `arenaOfficialName`, `arenaSourceUrl`, `arenaRinkIn`, `arenaCourtIn`) lists 167 arenas, 57 that a club of those leagues plays in today (every one of the 32 NHL and the 30 NBA arenas) and 110 of the past, back to the Montreal Arena of 1898: the Boston Arena, the Montreal Forum, Maple Leaf Gardens, Boston Garden, the Chicago Stadium, the old Madison Square Garden of 1925, the Spectrum and the halls of the BAA's first season among them. Each has its Wikidata item and coordinates, the names it had with their years (`Staples Center` until 2019), its name in Japanese with the reading, the years it opened and closed or was pulled down, the seats the article gives for hockey and for basketball, and the English article and revision every fact was read from. An arena is listed when a club of those leagues played its home games there; practice rinks, one-off sites and college gyms with no such club are not, nor are the domes whose home was a football or baseball club (the Superdome, the Kingdome, the Silverdome, the Georgia Dome and the Alamodome).
41
+ - **The size of a rink, where an article gives one.** Five arenas have a rink other than the NHL's 200 by 85 feet, each with the article, revision and a few words of what it says: Boston Garden (58.2 by 25.3 metres, 190.9 by 83 feet), the Boston Arena (220 by 90 feet until 1972, 200 by 80 from 1972, 200 by 90 from 1995), the Philadelphia Arena (220 by 101), the Barton Street Arena (200 by 80) and the Windsor Arena (195 by 80). The Chicago Stadium, Buffalo's Memorial Auditorium and the Cow Palace are said to have had a short rink that no article measures: `rinkUnknown`, drawn at the NHL's size and said so in the description. No article gives the size of a court.
42
+ - **`drawKyogijo({ sport: "nhl", arena })` and `{ sport: "nba", arena }`** (and the `arena` attribute of `<kyogijo-field>`, and `outlineOf`) draw an arena's rink or court at its own size where there is one, with the markings of the `year` (the Boston Arena's ice is 220 by 90 feet in 1926 and 200 by 80 in 1972), titled with the arena's name of that year (`Staples Center, basketball court`) and a description that says the size is the one published for it. An arena that is not one, a hostile value and a sport other than the NHL and the NBA change nothing; a `league` of your own wins over the arena's size.
43
+ - **The atlas has the arenas.** `PLACES` is 330 places (158 parks and grounds, the five halls of the budō and the 167 arenas): `Place.kind` is `arena` for the 167, `Place.sport` is `hockey` or `basketball` (the sport of the first club) and the new `Place.sports` has both for the 48 arenas of both; `placesBy({ sport })` matches any of a place's sports, `atlasFacets().sports` is `baseball, basketball, budo, hockey, soccer`, `surfacesOf(arena)` offers the rink and the court (`{ sport: "nhl", arena }`, `{ sport: "nba", arena }`) and `surfaceOf(place, "nhl" | "nba")` the one asked for. `PlaceSurface` and `surfaceOf` have the new arena member. The search finds an arena by its names and by the clubs that played there in English and in Japanese.
44
+ - **Tenants: 798 tenants (519 clubs) at 322 of the 330 places** (355 more, all at arenas; the parks' and grounds' are as they were). The WNBA, the PWHL and the Basketball Association of America (the NBA's own first years) are leagues of the table; `pnpm tenants:fetch --arenas` reads the arenas only and adds them to the evidence, and five rows of `scripts/tenants.curated.json` hold a club that an article says starts in the future. Five clubs have an everyday name in Japanese where Wikidata's label carries a disambiguator.
45
+ - **The demo's Atlas has hockey and basketball.** The sport filter has Hockey and Basketball, the map a bar across a hockey arena and an upright bar on a basketball arena, the facts of an arena say its rink and court (the NHL's, or the published size), its seats for each sport and its names; the button of the other sport opens the playground on the court beside the rink, and the playground draws the arena. The gallery has eight arenas, including Boston Garden and the Boston Arena in two years.
46
+ - **Tooling:** `pnpm arenas` (writes `src/arenas.data.ts` and `docs/arenas.md` from `scripts/arenas.data.json`), `pnpm arenas:fetch` (the evidence from Wikidata and the English Wikipedia, one request at a time, into `scripts/arenas.wikidata.json`) and `pnpm arenas:check` (reads Wikidata again and compares the item, the article, a name, the coordinates and the country).
47
+ - **Trophies, medals, balls and crests by id, from Dougu Sports** ([docs/emblems.md](./docs/emblems.md)). `useEmblems(render)` (from the main entry and from `/element`) plugs a renderer of ready-made emblems into the package, which keeps zero dependencies and bundles no art: `import { renderEmblem } from "@johnmorrisdotca/dougu-sports/emblems"; useEmblems(renderEmblem);`. After that an emblem's id is accepted wherever a logo, a flag or a mark was: a team's `logo` in a score, a compact card, a badge and a pageant, the pageant's `emblem`, the road to the final, a layer's `logo`, a swimmer's flag, a court's `centreLogo`, and the element's `home-logo` and `away-logo`. `logo: "crest:shield"` takes the team's `color`, `textColor` and the first letters of its `abbr`; `"cup"` is `"trophy:cup"`, and `/line` after an id gives the outline style.
48
+ - **`emblems: render` in the options of one drawing** (and of a road chart): a renderer for that drawing alone, over the page's own.
49
+ - **Types:** `EmblemRenderer`, `EmblemDrawOptions`, `EmblemRef` and `EmblemId`, which is the union of Dougu Sports' ids where `@johnmorrisdotca/dougu-sports` is installed beside the package and `string` where it is not. `safePicture` is exported: the check of an address, an image `data:` address or an SVG document, without the emblems. `safeLogo(value, context?)` is that check after looking for an emblem's id, and takes the team's colours for a crest.
50
+ - Without a renderer plugged in an id is an address like any other and is refused as before; in development the first refused id with a group (`"crest:shield"`) prints one hint to the console saying how to plug Dougu Sports in (nothing is printed where `process.env.NODE_ENV` is `"production"`).
51
+ - The demo's playground has a Ready-made choice for a team's logo and a picker for the pageant's centre (a tile for each of Dougu Sports' 148 emblems, a finger wide, named in English and Japanese), an Outline style chip, and the code tabs add the two lines that plug Dougu Sports in when an id is used. Dougu Sports is a development dependency, used by the docs, the demo and the tests only.
52
+ - **`zoneAt`: where a point lies by a sport's own rules** (`@johnmorrisdotca/kyogijo-stadiums/zones`, [docs/zones.md](./docs/zones.md)). `zoneAt(sport, point, { frame, attacking, league, year, park, pitch })` names the zone, the finer area in it and every other area that holds, by id and in English or Japanese, from the package's own figures: hockey's zones, crease, trapezoid, slot and face-off circles; basketball's frontcourt, restricted area, paint, mid-range, corner threes and arc by the league's court and the season's three-point line; soccer's thirds, six-yard box, penalty area, D and half-spaces; baseball's infield, outfield, foul territory, warning track and over the wall by the park's own fence; football's end zones, red zone and hashes. Every other sport answers in its zone sets. Questions: `isThreePointer`, `inPaint`, `inRestrictedArea`, `inSlot`, `inCrease`, `inPenaltyArea`, `inSixYardBox`, `inRedZone`, `betweenHashes`, `isFair`, `overWall`, `onWarningTrack`. Tests hold the hockey slot and the basketball shot zones to the package's own zone sets on a grid.
53
+ - **`isHomeRun(park, point, { height })`**, from the park's fence distance and wall height; `homeRun` says why. Where the park's article gives no wall height the answer is `undefined`, and `PARKS_WITHOUT_WALL_HEIGHTS` lists the 59 of the 94 parks that hold none.
54
+ - **`clientPointToField(svg, x, y, { provider })` and `fieldPointToClient`** (`.../pointer`, [docs/pointer.md](./docs/pointer.md)): a pointer's place on a drawing in any of the 42 frames (and the surface's own, in any unit), with the zone, through the browser's own matrix, so it holds for wide and tall drawings, any size, padding and viewBox, ranges and the end a team attacks; `clientPointToFrames` gives every frame of the sport at once. A drawing must be made with the new option `pointer: true` (off by default, so that no existing drawing changes); the 3D view answers `null`. Tested by round trip through every frame of every sport and by clicking real drawings in a browser.
55
+ - **`marks: true`: `data-mark-id`, `data-index` and `data-zone` on every mark**, with an optional `<title>`, so that one listener can link a mark to a table: the points, lines (and `data-zone-end`), arrows, text, heat cells, hexagons, zone cells, contour bands, players, formation spots, Voronoi cells and network links of the layers. Off by default, so that a drawing stays as compact as ever; on for every layer with `marks: true` in the drawing's options, for one layer with `marks: true` on it, by itself for a layer whose data has an `id` (a new field of every datum; the charts pass a shot's `id` through) and with `pointer: true`. A React and a vanilla delegated listener are in [docs/layers.md](./docs/layers.md#linking-marks-to-a-table). A marked heat map has a path for each cell, about 50 to 90 bytes more each.
56
+ - **Goal mouths, the strike zone and the stumps** (`.../target`, [docs/targets.md](./docs/targets.md)). `drawGoalMouth` for hockey (6 by 4 feet), soccer, handball, water polo, lacrosse (6 by 6 feet; the box floor's 4 ft 9 in by 4 with `league: "nll"`) and field hockey, each from its rulebook, with the shots as marks (goal, saved, post, crossbar, wide, high), nine zones (the top shelf and the five-hole in hockey), light and dark, English and Japanese, and as data in every renderer. `drawStrikeZone`: the catcher's view of the 17-inch plate with the rules' zone (`top` and `bottom` as options), the nine cells and the 13-zone chase grid, the batter's side, and the pitches numbered, coloured by result or type and shaped by what became of them. `drawStumps`: Law 8's 28 by 9 inches with the bails, the line zones and the length zones of a delivery.
57
+ - **The demo's "Point at the field"**, under "Move a point between providers": click, drag or use the arrow keys on a rink, pitch, court, ballpark or field and read the place in every provider's numbers with the zone's name.
58
+ - **Six budo sports and the dojo** (`budo`, [docs/budo.md](./docs/budo.md)): judo (the IJF contest area of 8 to 10 m, its safety area, the common safe zone, the free zone, the platform, the start marks and the 2 by 1 m tatami, in the IJF's yellow and blue, red and blue, and green and beige looks; the AJJF's smaller mat and red danger band; kata), karate (WKF kumite and kata areas), kendo (the FIK's shiai-jo), sumo (the dohyo with its tawara, shikiri-sen and optional tassels) and kyudo (the 28 m kinteki and 60 m enteki ranges with the shajo, azuchi and yatori-michi). Every figure carries its rule number or address in [docs/sources.md](./docs/sources.md).
59
+ - **`dojo({ mats, pattern, colours, kamiza, entrances, walls, windows, shinzen, label })`**: a dojo built from real tatami units, in jo or metres (generic 8, 12, 20, 50, 100 and 200 jo), laid so that no four corners meet, in the traditional green and beige or the competitive colours, with several contest areas.
60
+ - **Halls in the atlas** (`Place.kind: "hall"`, `HALLS`, `hallSurfaces`): the Kodokan, the Nippon Budokan, the Ryogoku Kokugikan, the Kyoto Butokuden and the Budokwai, each with only facts that can be cited and a generic layout where the real one is not published (said so in the place's notes).
61
+ - **The dojo builder grows a room and a history:** `areas: { across, down }` and `areaSize` for a block of contest areas, `outline` (border mats round each area), `surround` (wood round the mats), `dais`, `banner`, `balcony`, `eras` with `era` and `year` (a floor's looks over time, the years `null` where no source gives them), `colours` that really paint, and `texture: "weave"` (the rice-straw weave as one repeating gradient, turned a quarter on a mat that lies across; judo too). The dojo looks `yellow-green` and `green-orange` are new.
62
+ - **A dojo's crowd is its gallery** (`crowdStands()` reports `gallery: true`; `dojoGallery()`): a thin band of plain brown seats behind a rail close to the walls, a few neutral people and no team colours, from the same balcony data as `dojoRoom()`; the Budokan and the Kokugikan keep their bowls.
63
+ - **`dojoRoom(options)`** (`/budo`): the room round any budo surface as plain data for a 3D view to raise (walls, surround, dais, banners, balconies, doors, windows, shrine, mat thickness, the Budokan's octagon), with the figures that are ours listed in `notes`.
64
+ - **The Kodokan as a building:** the main dojo (420 jō, four contest areas, the dais, banner and gallery, in its earlier and its current colours), the Judo School, international, women's and boys' dojos, each drawable on its own.
65
+ - Judo scores (ippon, waza-ari, shido), karate points, kendo ippon and the sumo kimarite (82), boards for them, crowd profiles for the Budokan (an octagonal hall) and the Kokugikan, a 3D view with the dohyo's mound and the azuchi, and Japanese names throughout.
66
+
67
+
10
68
  ## [0.5.0] - 2026-10-14
11
69
 
12
70
  Thirteen new sports (padel, squash, racquetball, sepak takraw, teqball, roundnet and netball, with sitting volleyball; swimming, water polo, diving and artistic swimming; athletics and skating), which makes 33. A 3D view that stands what a rulebook puts on a surface (nets, posts, goals, walls, blocks, boards, bars, hurdles, boards and platforms) on a floor that turns. A crowd in the stands, and a pageant of flags and crests over the halves. A folded curling sheet, with a heat chart and statistics. A realistic basketball floor. The clubs that played in each ballpark and ground, with their Japanese names as Japanese media say them.
package/NOTICE.md CHANGED
@@ -18,7 +18,7 @@ picture or code of the sources is copied; each source is named here so that the
18
18
  | `leagues`: the pickleball court | USA Pickleball Official Rulebook, 2026, Section 3 (Court and Equipment) | Facts |
19
19
  | `leagues`: the table tennis table | Laws of Table Tennis, International Table Tennis Federation (ITTF), 2026 statutes, as reproduced by Table Tennis England (issue 1, July 2026) | Facts |
20
20
  | `leagues`: the basketball variants | WNBA Official Rules 2026 (Rule 1), FIBA Official Basketball Rules 2026 (Rule Two and the Equipment rules), NCAA Men's Basketball Rules 2026-27 (Rules 1-2 to 1-13) and NCAA Women's Basketball Rules (1-8-1), NFHS Basketball Rules (2017-18 text, Rules 1-1 to 1-7), and the NBA G League playing rules | Facts |
21
- | `leagues`: the hockey variants | IIHF Official Rule Book 2025/26 (Rules 1.2 to 1.9 and Appendix VI), NCAA Men's and Women's Ice Hockey Rules 2026-27 (Rule 1), the 2025-26 rules of the AHL, ECHL, OHL, WHL, QMJHL and PWHL (Rule 1), and USA Hockey Junior Rules 2025-29 (101 to 105) for the USHL | Facts |
21
+ | `leagues`: the hockey variants | IIHF Official Rule Book 2025/26 (Rules 1.2 to 1.9 and Appendix VI), NCAA Men's and Women's Ice Hockey Rules 2026-27 (Rule 1), the 2025-26 rules of the AHL, ECHL, OHL, WHL, QMJHL and PWHL (Rule 1), and USA Hockey Junior Rules 2025-29 (101 to 105) for the USHL; the IIHF's statement of 9 December 2025 on the ice of Milano Cortina 2026 (read in Sports Illustrated), for the Olympic rink; Wikipedia's "Boston Garden" (CC BY-SA 4.0, revision 1379921964) for that rink's size | Facts |
22
22
  | `leagues`: the football variants | NCAA Football Rules 2026 (Rules 1-2 and 2-12, Appendix D), NFHS Football Rules (2021 text, Rules 1-1 and 1-2) and the NFHS eight-, nine- and six-player diagrams, the UIL exceptions to the NCAA rules 2026 (Texas six-man), and the 2024 IFL Rule Book (Rule 1) | Facts |
23
23
  | `leagues`: the baseball and softball variants | NCAA Baseball Rules 2027-28 (Rules 1-2 to 1-5) and NCAA Softball Rules 2026-27 (Rule 2), NFHS Baseball Rules 2026 and the NFHS softball field diagram 2025, Little League Field Specifications (2026), PONY Baseball Rule Book 2026 (Rule 7), USA Softball Official Rules 2026 (Rule 2 and the Official Distance Table), and WBSC Slow Pitch rules 2026-29 (Appendix 1 F) | Facts |
24
24
  | `leagues`: the lacrosse fields | World Lacrosse's Men's Field Lacrosse Official Playing Rules 2025-2027 (v1.1), Women's Field Lacrosse Official Playing Rules 2025-2026 (v1.1) and Box Lacrosse Official Playing Rules 2026-2028 (v2.0); NCAA Men's Lacrosse Rules and Interpretations 2027 and 2028 and NCAA Women's Lacrosse Rules 2026 and 2027; the National Lacrosse League's NLL Official Rules 2025-26; the Premier Lacrosse League's 2024 PLL Rulebook | Facts |
@@ -31,6 +31,7 @@ picture or code of the sources is copied; each source is named here so that the
31
31
  | `geometry`: the swimming pool, the water polo field, the diving well and the artistic swimming area | World Aquatics, Competition Regulations, in force as from 25 June 2025 (Part Two Article 16, Part Four Article 13 and Appendix 2, Part Six Article 18 and Appendices 3 and 4, Part Seven Article 27), and the Facilities Rules 2017-2021 and 2021-2025 (FR 2 to FR 5) | Facts; no text or drawing copied |
32
32
  | `leagues`: the athletics track | World Athletics' Track and Field Facilities Manual (2019 edition, Chapters 1 to 3) and its 400 Metre Standard Track Marking Plan (Figure 2.2.1.6a), the Competition and Technical Rules (Books C1.1 and C2.1, in force 1 July 2026) and the Marking Plan for the Standard Short Track (1 January 2026) | Facts; no text or drawing copied |
33
33
  | `leagues`: the skating rinks | The International Skating Union's Sports Rules - Speed Skating (Special Regulations and Technical Rules, Rules 203 to 206, 226 to 228 and 253 to 257, and "H. Track", effective 12 June 2026), Special Regulations and Technical Rules Short Track Speed Skating (Rule 280 and the diagram of the tracks, 2024) and Sports Rules - Figure Skating (Rule 342, effective 12 June 2026) | Facts; no text or drawing copied |
34
+ | `leagues` and `halls`: the budō surfaces | The International Judo Federation's Sport and Organisation Rules (version of 21 January 2026, 8.7, Article 9, B1.8; and the June 2020 version, 18.1); the All Japan Judo Federation's 大会運営ガイドブック2023; the World Karate Federation's Kumite and Kata Competition Rules (2026); the International Kendo Federation's Regulations of Kendo Shiai and Shinpan (Article 2 and Figure 1); the Japan Sumo Association's 相撲規則 土俵規定 第一条 and 大相撲クイズ, as the Sasakawa Sports Foundation and ozumo.jp quote them; the All Nippon Kyudo Federation's 弓道競技運営要領 (2016) and the National Sports Festival 2015's rules for kinteki and enteki; the tatami sizes of English and Japanese Wikipedia; the Kodokan's 施設のご案内, the Nippon Budokan's 日本武道館建物等概要 (October 2021), and English and Japanese Wikipedia and Wikidata on the five halls and the kimarite | Facts |
34
35
  | `frames`: the soccer providers' coordinates | StatsBomb's Open Data Events specification (Appendix 2), the Wyscout and Impect glossaries, the Metrica Sports and SkillCorner open-data READMEs; for Opta, Tracab and Second Spectrum, whose specifications are not public, the figures of mplsoccer, ggsoccer, kloppy and floodlight (docs/sources.md) | Facts; no text, table or code copied |
35
36
  | `parks`: the fence of each ballpark, current and past, and the seasons of a past park | The distances (and, for a park whose fence moved, the years an article dates them) published in the English and Japanese Wikipedia article of each park, at the revision cited below; the seasons a club played there from the same article's list of tenants | Facts. The articles are CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/); none of their text, tables or images is used, and the angles between the distances are our own reading |
36
37
  | `parks`: the Wikidata item of each ballpark (`wikidata`) | The item (`Q49136`) that each cited article is linked to, read with the MediaWiki API (`pageprops`, `wikibase_item`) and checked against the item's label | Wikidata's data is CC0 (https://creativecommons.org/publicdomain/zero/1.0/) |
@@ -38,11 +39,12 @@ picture or code of the sources is copied; each source is named here so that the
38
39
  | `grounds`: each soccer ground's pitch, names, years, city and capacity | The infobox and the opening text of the English Wikipedia article of each ground, at the revision cited below (the pitch's length and width where the infobox gives them for football, the names with the years the article dates them, the year it opened and closed, the first capacity); the ground's name in Japanese from its Japanese article | Facts. The articles are CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/); none of their text, tables or images is used |
39
40
  | `grounds`: the World Cups each ground staged matches of, and where each final was played | The venue section of the English Wikipedia article of each men's and Women's World Cup, at the revision cited below; FIFA's own pages are not used | Facts, CC BY-SA 4.0 articles as above |
40
41
  | `grounds`: the Wikidata item and the coordinates of each ground (`wikidata`, `lat`, `lon`) | The item that each cited article is linked to, its coordinates (P625) and its country (P17), read with the Wikidata API and checked against the item's labels by `scripts/check-grounds.mjs` | Wikidata's data is CC0 (https://creativecommons.org/publicdomain/zero/1.0/) |
41
- | `atlas`: the clubs that played in each park and ground (`tenants`: the club, its Wikidata item, its league, the years) | The occupants (P466) and home venues (P115) Wikidata lists for each place, with the start (P580) and end (P582) times of each statement, and the clubs' labels in English and Japanese, sports (P641) and leagues (P118), read with the Wikidata API and query service by `scripts/fetch-tenants.mjs` into `scripts/tenants.wikidata.json`; and the `tenants` line of the infobox of each place's English Wikipedia article, at the revision that `source.wikipedia` names for each club (155 articles, read on 2026-10-13) | Facts. Wikidata's data is CC0 (https://creativecommons.org/publicdomain/zero/1.0/), and the articles are CC BY-SA 4.0 as above; the names of clubs and the years are facts, no text, table or image of an article is used. Which clubs are tenants, and the league each is filed under, are our reading, in docs/atlas.md ("Tenants") |
42
+ | `arenas`: each arena's names, years, city, seats, rink sizes, Wikidata item and coordinates | The infobox and the text of the English Wikipedia article of each arena, at the revision cited below (the names with the years the article dates them, the year it opened, closed and was pulled down, the seats for ice hockey and for basketball, a rink's length and width where the article gives them in a sentence of its own); the name in Japanese from the title of its Japanese article or written for the package; the Wikidata item (CC0) that each article is linked to and its coordinates (P625) | Facts. The articles are CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/); none of their text, tables or images is used |
43
+ | `atlas`: the clubs that played in each park, ground and arena (`tenants`: the club, its Wikidata item, its league, the years) | The occupants (P466) and home venues (P115) Wikidata lists for each place, with the start (P580) and end (P582) times of each statement, and the clubs' labels in English and Japanese, sports (P641) and leagues (P118), read with the Wikidata API and query service by `scripts/fetch-tenants.mjs` into `scripts/tenants.wikidata.json`; and the `tenants` line of the infobox of each place's English Wikipedia article, at the revision that `source.wikipedia` names for each club (155 articles, read on 2026-10-13) | Facts. Wikidata's data is CC0 (https://creativecommons.org/publicdomain/zero/1.0/), and the articles are CC BY-SA 4.0 as above; the names of clubs and the years are facts, no text, table or image of an article is used. Which clubs are tenants, and the league each is filed under, are our reading, in docs/atlas.md ("Tenants") |
42
44
  | `parks`: the walls, quirks, backstop, warning track, dugouts and extra points of a ballpark (`walls`, `quirks`, `backstop_ft`, `track_ft`, `dugouts`, `labels`) | The infobox and the text of the same English article of each park, at the same revision as its fence (the Japanese article for the heights of the walls of the parks of Japan): the height of the wall along a stretch of the fence and the seasons it stood, the hill, overhang, poles, bullpens, ivy and basket the text describes with figures, the infobox's backstop distance, the warning track's width, the sides of the dugouts, and the further distances the text gives (Wrigley Field's wells, Sportsman's Park's and Milwaukee County Stadium's markers). The stretch each figure covers and the angle of each extra point are our reading of the article's words | Facts. The articles are CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/); none of their text, tables or images is used |
43
45
  | `parks`: the coordinates of each ballpark (`lat`, `lon`) and the years it opened and closed (`opened`, `closed`) | The item's coordinate location (P625), its date of official opening or inception (P1619, P571) and of official closure or dissolution (P3999, P576), read with the Wikidata API by `scripts/fetch-park-coordinates.mjs` and checked by `scripts/check-parks.mjs` (ES CON Field's opening, 2023, is read from its article) | Wikidata's data is CC0 (https://creativecommons.org/publicdomain/zero/1.0/) |
44
46
  | `events`: the special games, their days, venues, hosts and where a surface stood | The English Wikipedia articles of each game and of its venue, at the revision cited below, and three articles of the press (Sports Video Group, NHL.com, The Boston Globe), named below with their authors and dates; the size of a carrier from the Nimitz class's article | Facts, CC BY-SA 4.0 articles as above; no text copied |
45
- | The atlas (`@johnmorrisdotca/kyogijo-stadiums/atlas`): the places and their map | The parks and grounds above, joined; the demo's and docs/atlas.md's map is drawn by chizu (MIT) from Natural Earth, which is in the public domain (https://www.naturalearthdata.com/about/terms-of-use/) | Facts and CC0 data; Natural Earth is public domain; chizu is a development dependency and none of it is in the package |
47
+ | The atlas (`@johnmorrisdotca/kyogijo-stadiums/atlas`): the places and their map | The parks, grounds and arenas above, joined; the demo's and docs/atlas.md's map is drawn by chizu (MIT) from Natural Earth, which is in the public domain (https://www.naturalearthdata.com/about/terms-of-use/) | Facts and CC0 data; Natural Earth is public domain; chizu is a development dependency and none of it is in the package |
46
48
 
47
49
  ## The ballparks' articles
48
50
 
@@ -218,6 +220,180 @@ Each article was read at the revision named (64 soccer grounds), by its address
218
220
  | Japan National Stadium | Q14862239 | Japan National Stadium, 1378899630 | 国立競技場, 110837538 |
219
221
  | Kashima Soccer Stadium | Q494769 | Kashima Soccer Stadium, 1372209519 | 茨城県立カシマサッカースタジアム, 108917122 |
220
222
 
223
+ ## The arenas' articles
224
+
225
+ Each article was read at the revision named (167 arenas), by its address `https://<en or ja>.wikipedia.org/w/index.php?title=<title>&oldid=<revision>` (the function `arenaSourceUrl` writes it). The authors of an article are listed in its history. The figures are in `scripts/arenas.data.json`, which holds each entry's article and revision; docs/references.md explains how they were read and docs/arenas.md lists every arena. The Japanese article is named by its title, as Wikidata links it; the name in Japanese is the package's (see docs/arenas.md, "Names").
226
+
227
+ | Arena | Wikidata item | English article and revision | Japanese article |
228
+ | --- | --- | --- | --- |
229
+ | Amerant Bank Arena | Q795526 | Amerant Bank Arena, 1379821144 | アメラント・バンク・アリーナ |
230
+ | American Airlines Center | Q463345 | American Airlines Center, 1379833787 | アメリカン・エアラインズ・センター |
231
+ | Ball Arena | Q795470 | Ball Arena, 1379560431 | ボール・アリーナ |
232
+ | Bell Centre | Q522282 | Bell Centre, 1380110375 | ベル・センター |
233
+ | Benchmark International Arena | Q940199 | Benchmark International Arena, 1376541285 | ベンチマーク・インターナショナル・アリーナ |
234
+ | Bridgestone Arena | Q302869 | Bridgestone Arena, 1373721363 | ブリヂストン・アリーナ |
235
+ | Canada Life Centre | Q656928 | Canada Life Centre, 1379717047 | カナダライフ・センター |
236
+ | Canadian Tire Centre | Q1327290 | Canadian Tire Centre, 1378044395 | カナディアン・タイヤ・センター |
237
+ | Capital One Arena | Q223240 | Capital One Arena, 1375927841 | キャピタル・ワン・アリーナ |
238
+ | Climate Pledge Arena | Q977529 | Climate Pledge Arena, 1376105473 | クライメット・プレッジ・アリーナ |
239
+ | Crypto.com Arena | Q186080 | Crypto.com Arena, 1379936314 | クリプト・ドットコム・アリーナ |
240
+ | Delta Center | Q82294 | Delta Center, 1379043310 | デルタ・センター |
241
+ | Enterprise Center | Q1067700 | Enterprise Center, 1372086380 | エンタープライズ・センター |
242
+ | Grand Casino Arena | Q1421388 | Grand Casino Arena, 1379407082 | グランド・カジノ・アリーナ |
243
+ | Honda Center | Q774138 | Honda Center, 1380000927 | ホンダセンター |
244
+ | KeyBank Center | Q1110789 | KeyBank Center, 1375699062 | キーバンク・センター |
245
+ | Lenovo Center | Q39177 | Lenovo Center, 1380055594 | レノボ・センター |
246
+ | Little Caesars Arena | Q18154984 | Little Caesars Arena, 1379995369 | リトル・シーザーズ・アリーナ |
247
+ | Madison Square Garden | Q186125 | Madison Square Garden, 1380115046 | マディソン・スクエア・ガーデン |
248
+ | Nationwide Arena | Q166503 | Nationwide Arena, 1379010656 | ネイションワイド・アリーナ |
249
+ | PPG Paints Arena | Q595460 | PPG Paints Arena, 1378458359 | PPGペインツ・アリーナ |
250
+ | Prudential Center | Q849027 | Prudential Center, 1380112777 | プルデンシャル・センター |
251
+ | Rogers Arena | Q517318 | Rogers Arena, 1379918849 | ロジャーズ・アリーナ |
252
+ | Rogers Place | Q5339036 | Rogers Place, 1380110483 | ロジャーズ・プレイス |
253
+ | SAP Center | Q261863 | SAP Center, 1376082812 | SAPセンター |
254
+ | Scotiabank Arena | Q406972 | Scotiabank Arena, 1379971880 | スコシアバンク・アリーナ |
255
+ | Scotiabank Saddledome | Q1140083 | Scotiabank Saddledome, 1377341466 | スコシアバンク・サドルドーム |
256
+ | T-Mobile Arena | Q3338973 | T-Mobile Arena, 1379155307 | T-モバイル・アリーナ |
257
+ | TD Garden | Q432105 | TD Garden, 1372238200 | TDガーデン |
258
+ | UBS Arena | Q48742753 | UBS Arena, 1374271562 | UBSアリーナ |
259
+ | United Center | Q639975 | United Center, 1375751561 | ユナイテッド・センター |
260
+ | Xfinity Mobile Arena | Q818735 | Xfinity Mobile Arena, 1380172806 | エクスフィニティ・モバイル・アリーナ |
261
+ | Barclays Center | Q807966 | Barclays Center, 1379823700 | バークレイズ・センター |
262
+ | Mortgage Matchup Center | Q1538690 | Mortgage Matchup Center, 1378999780 | モートゲージ・マッチアップセンター |
263
+ | Pacific Coliseum | Q832644 | Pacific Coliseum, 1378607871 | パシフィック・コロシアム |
264
+ | State Farm Arena | Q1123297 | State Farm Arena, 1379287335 | ステートファーム・アリーナ |
265
+ | Chase Center | Q15262098 | Chase Center, 1379490317 | チェイス・センター |
266
+ | FedExForum | Q641212 | FedExForum, 1373012936 | フェデックス・フォーラム |
267
+ | Fiserv Forum | Q20372160 | Fiserv Forum, 1379397566 | ファイサーブ・フォーラム |
268
+ | Frost Bank Center | Q298573 | Frost Bank Center, 1372180807 | フロスト・バンク・センター |
269
+ | Gainbridge Fieldhouse | Q545007 | Gainbridge Fieldhouse, 1374223283 | ゲインブリッジ・フィールドハウス |
270
+ | Golden 1 Center | Q7011384 | Golden 1 Center, 1379743809 | ゴールデン1センター |
271
+ | Intuit Dome | Q54958436 | Intuit Dome, 1379936828 | インテュイット・ドーム |
272
+ | Kaseya Center | Q420129 | Kaseya Center, 1379398233 | カセヤ・センター |
273
+ | Kia Center | Q481795 | Kia Center, 1377516173 | キア・センター |
274
+ | Moda Center | Q1347442 | Moda Center, 1379961159 | モダ・センター |
275
+ | Paycom Center | Q665434 | Paycom Center, 1372206126 | ペイコム・センター |
276
+ | Rocket Arena | Q387157 | Rocket Arena, 1379138612 | ロケット・アリーナ |
277
+ | Smoothie King Center | Q1515840 | Smoothie King Center, 1380134811 | スムージー・キング・センター |
278
+ | Spectrum Center | Q983870 | Spectrum Center, 1380171931 | スペクトラム・センター |
279
+ | Target Center | Q282675 | Target Center, 1379559475 | ターゲット・センター |
280
+ | Toyota Center | Q1166157 | Toyota Center, 1379987960 | トヨタセンター |
281
+ | CareFirst Arena | Q30488454 | CareFirst Arena, 1372072999 | |
282
+ | Coca-Cola Coliseum | Q541481 | Coca-Cola Coliseum, 1379824041 | |
283
+ | Michelob Ultra Arena | Q1888848 | Michelob Ultra Arena, 1379157029 | ミケロブ・ウルトラ・アリーナ |
284
+ | Wintrust Arena | Q16991688 | Wintrust Arena, 1373715864 | |
285
+ | Place Bell | Q3389723 | Place Bell, 1372214741 | |
286
+ | The Arena (Ottawa) | Q7714219 | The Arena (Ottawa), 1372241202 | |
287
+ | Barton Street Arena | Q4865692 | Barton Street Arena, 1372066713 | |
288
+ | The Big E Coliseum | Q7717607 | Big E Coliseum, 1372675694 | |
289
+ | Boston Garden | Q894567 | Boston Garden, 1379921964 | ボストン・ガーデン |
290
+ | Buffalo Memorial Auditorium | Q2927640 | Buffalo Memorial Auditorium, 1378939642 | |
291
+ | Capital Centre | Q3656844 | Capital Centre (Landover, Maryland), 1378275954 | |
292
+ | Chicago Coliseum | Q2370898 | Chicago Coliseum, 1370805073 | |
293
+ | Chicago Stadium | Q2703852 | Chicago Stadium, 1377159109 | シカゴ・スタジアム |
294
+ | Civic Arena | Q1237181 | Civic Arena (Pittsburgh), 1378604648 | メロン・アリーナ |
295
+ | Colisée de Québec | Q600226 | Colisée de Québec, 1376437739 | |
296
+ | Cow Palace | Q604015 | Cow Palace, 1372078143 | |
297
+ | Desert Diamond Arena | Q1421377 | Desert Diamond Arena, 1380097867 | ヒラ・リバー・アリーナ |
298
+ | Detroit Olympia | Q1201545 | Detroit Olympia, 1372080309 | |
299
+ | Duquesne Gardens | Q3041488 | Duquesne Gardens, 1372081879 | |
300
+ | Expo Hall | Q1384652 | Expo Hall, 1372151342 | |
301
+ | First Horizon Coliseum | Q133089582 | First Horizon Coliseum, 1372176337 | |
302
+ | Kemper Arena | Q1489399 | Hy-Vee Arena, 1377650000 | |
303
+ | Joe Louis Arena | Q168579 | Joe Louis Arena, 1378833772 | ジョー・ルイス・アリーナ |
304
+ | Jubilee Arena | Q599978 | Jubilee Arena, 1372208380 | |
305
+ | Kia Forum | Q639129 | Kia Forum, 1378606147 | ザ・フォーラム (アリーナ) |
306
+ | Los Angeles Memorial Sports Arena | Q1571403 | Los Angeles Memorial Sports Arena, 1378620043 | ロサンゼルス・メモリアル・スポーツ・アリーナ |
307
+ | Madison Square Garden (1925) | Q6728098 | Madison Square Garden (1925), 1374252217 | |
308
+ | Maple Leaf Gardens | Q1814534 | Maple Leaf Gardens, 1378352628 | メープルリーフ・ガーデンズ |
309
+ | MassMutual Center | Q6783965 | MassMutual Center, 1376168573 | |
310
+ | Matthews Arena | Q919959 | Matthews Arena, 1372084660 | |
311
+ | McNichols Sports Arena | Q2081796 | McNichols Sports Arena, 1376436998 | |
312
+ | Meadowlands Arena | Q538218 | Meadowlands Arena, 1379389390 | アイゾッド・センター |
313
+ | Met Center | Q3307175 | Met Center, 1379253396 | |
314
+ | Miami Arena | Q1857422 | Miami Arena, 1372086645 | |
315
+ | Montreal Arena | Q849938 | Montreal Arena, 1372216977 | |
316
+ | Montreal Forum | Q367272 | Montreal Forum, 1372775440 | モントリオール・フォーラム |
317
+ | Mount Royal Arena | Q544559 | Mount Royal Arena, 1372217380 | |
318
+ | Mullett Arena | Q111169373 | Mullett Arena, 1377666841 | |
319
+ | Mutual Street Arena | Q3331013 | Mutual Street Arena, 1373119845 | |
320
+ | Nassau Coliseum | Q1048921 | Nassau Coliseum, 1378968533 | ナッソー・ベテランズ・メモリアル・コロシアム |
321
+ | Northlands Coliseum | Q1139489 | Northlands Coliseum, 1380012552 | レクソール・プレイス |
322
+ | Oakland Arena | Q1139021 | Oakland Arena, 1376082185 | オラクル・アリーナ |
323
+ | Omni Coliseum | Q1970067 | Omni Coliseum, 1372222916 | オムニ・コロシアム |
324
+ | Ottawa Auditorium | Q7109141 | Ottawa Auditorium, 1372223758 | |
325
+ | PeoplesBank Arena | Q1783634 | PeoplesBank Arena, 1378577514 | |
326
+ | Philadelphia Arena | Q3378842 | Philadelphia Arena, 1372214135 | |
327
+ | Quebec Arena | Q7269749 | Quebec Arena, 1372222670 | |
328
+ | Reunion Arena | Q1859962 | Reunion Arena, 1374129116 | リユニオン・アリーナ |
329
+ | Richfield Coliseum | Q2982682 | Richfield Coliseum, 1372224989 | |
330
+ | St. Louis Arena | Q3495282 | St. Louis Arena, 1372232504 | |
331
+ | Spectrum | Q2085822 | Spectrum (arena), 1379231350 | ワコビア・スペクトラム |
332
+ | Stampede Corral | Q1147148 | Stampede Corral, 1372236029 | |
333
+ | TD Place Arena | Q1143666 | TD Place Arena, 1377852926 | |
334
+ | Windsor Arena | Q8024565 | Windsor Arena, 1372252144 | |
335
+ | Winnipeg Arena | Q1165024 | Winnipeg Arena, 1378999660 | |
336
+ | Baltimore Civic Center | Q2739940 | CFG Bank Arena, 1378813714 | ファースト・マリナー・アリーナ |
337
+ | 69th Regiment Armory | Q2781236 | 69th Regiment Armory, 1370518966 | |
338
+ | Allen County War Memorial Coliseum | Q1144284 | Allen County War Memorial Coliseum, 1372062120 | |
339
+ | Orlando Arena | Q481794 | Amway Arena, 1373824360 | アムウェイ・アリーナ |
340
+ | ARCO Arena | Q93831 | ARCO Arena, 1373275228 | スリープ・トレイン・アリーナ |
341
+ | ARCO Arena I | Q4653610 | ARCO Arena (1985), 1372270268 | |
342
+ | Arizona Veterans Memorial Coliseum | Q670890 | Arizona Veterans Memorial Coliseum, 1372064017 | |
343
+ | Baltimore Coliseum | Q4852825 | Baltimore Coliseum, 1375271173 | |
344
+ | Bill Graham Civic Auditorium | Q4909197 | Bill Graham Civic Auditorium, 1379142669 | |
345
+ | Rochester Community War Memorial | Q885674 | Blue Cross Arena, 1376259229 | |
346
+ | Bradley Center | Q737976 | Bradley Center, 1373828595 | ブラッドリー・センター |
347
+ | Calihan Hall | Q5021351 | Calihan Hall, 1372071903 | |
348
+ | Charlotte Coliseum | Q632138 | Charlotte Coliseum, 1376080591 | シャーロット・コロシアム |
349
+ | Cincinnati Gardens | Q1092220 | Cincinnati Gardens, 1378899753 | |
350
+ | Cleveland Arena | Q5132059 | Cleveland Arena, 1372076382 | |
351
+ | Cobo Arena | Q1104711 | Huntington Place, 1373508313 | |
352
+ | The Summit | Q2435324 | Lakewood Church Central Campus, 1379795560 | ザ・サミット |
353
+ | Denver Auditorium Arena | Q5259672 | Denver Auditorium Arena, 1372080181 | |
354
+ | Edgerton Park Arena | Q5337822 | Edgerton Park Arena, 1372082646 | |
355
+ | Hofheinz Pavilion | Q5876764 | Fertitta Center, 1376960498 | |
356
+ | HemisFair Arena | Q1145169 | HemisFair Arena, 1379338909 | |
357
+ | Hinkle Fieldhouse | Q3785713 | Hinkle Fieldhouse, 1372282020 | |
358
+ | International Amphitheatre | Q1666325 | International Amphitheatre, 1372205870 | |
359
+ | Rutgers Athletic Center | Q6686804 | Jersey Mike's Arena, 1378814713 | |
360
+ | Kiel Auditorium | Q3024991 | Kiel Auditorium, 1372210290 | キール・オーディトリアム |
361
+ | Loyola Field House | Q6694553 | Loyola Field House, 1315777970 | |
362
+ | Market Square Arena | Q3294309 | Market Square Arena, 1372084194 | |
363
+ | Alexander Memorial Coliseum | Q1492102 | McCamish Pavilion, 1380055740 | |
364
+ | Memphis Pyramid | Q2226897 | Memphis Pyramid, 1379632380 | |
365
+ | Minneapolis Armory | Q745327 | Minneapolis Armory, 1373394869 | |
366
+ | Minneapolis Auditorium | Q125537911 | Minneapolis Auditorium, 1380186125 | |
367
+ | Moody Coliseum | Q9035055 | Moody Coliseum, 1372217034 | |
368
+ | Municipal Auditorium (Kansas City) | Q14704450 | Municipal Auditorium (Kansas City, Missouri), 1372217597 | |
369
+ | Municipal Auditorium (New Orleans) | Q6936134 | Municipal Auditorium (New Orleans), 1372217599 | |
370
+ | Omaha Civic Auditorium | Q7089414 | Omaha Civic Auditorium, 1372685910 | |
371
+ | The Palace of Auburn Hills | Q1327633 | The Palace of Auburn Hills, 1380097365 | ザ・パレス・オブ・オーバーンヒルズ |
372
+ | Pechanga Arena | Q3106621 | Pechanga Arena, 1378571330 | |
373
+ | Philadelphia Convention Hall and Civic Center | Q3378843 | Philadelphia Convention Hall and Civic Center, 1372214142 | |
374
+ | Salt Palace | Q17030210 | Salt Palace (arena), 1372227896 | |
375
+ | Sheboygan Municipal Auditorium and Armory | Q7492276 | Sheboygan Armory, 1364628837 | |
376
+ | War Memorial Gymnasium | Q781955 | Sobrato Center, 1372231105 | |
377
+ | Tacoma Dome | Q1570942 | Tacoma Dome, 1372238448 | タコマドーム |
378
+ | The Hippodrome | Q6801072 | The Hippodrome, 1377122238 | |
379
+ | Toyota Coliseum | Q7603208 | Toyota Coliseum, 1362308915 | |
380
+ | Uline Arena | Q7971729 | Uline Arena, 1373462233 | ワシントン・コロシアム |
381
+ | Onondaga County War Memorial | Q3566224 | Upstate Medical University Arena, 1372247955 | |
382
+ | Milwaukee Arena | Q1142808 | UW–Milwaukee Panther Arena, 1372247035 | |
383
+ | Veterans Memorial Coliseum | Q549437 | Veterans Memorial Coliseum (Portland, Oregon), 1378608620 | |
384
+ | Wharton Field House | Q14688239 | Wharton Field House, 1372251506 | |
385
+ | Allstate Arena | Q1336027 | Allstate Arena, 1379742186 | オールステート・アリーナ |
386
+ | BOK Center | Q2877349 | BOK Center, 1372680708 | |
387
+ | College Park Center | Q2982974 | College Park Center, 1379987097 | |
388
+ | Credit Union 1 Arena | Q3547208 | Credit Union 1 Arena, 1379822104 | クレジット・ユニオン・1・アリーナ |
389
+ | Mohegan Sun Arena | Q2056942 | Mohegan Sun Arena, 1379406879 | |
390
+ | Reliant Arena | Q7311038 | Reliant Arena, 1377831984 | |
391
+ | Westchester County Center | Q7987239 | Westchester County Center, 1373852052 | |
392
+ | Total Mortgage Arena | Q7978892 | Total Mortgage Arena, 1372244808 | |
393
+ | Tsongas Center | Q2076478 | Tsongas Center, 1372246034 | |
394
+ | Verdun Auditorium | Q2870805 | Verdun Auditorium, 1372712513 | |
395
+ | Rhode Island Auditorium | Q7320897 | Rhode Island Auditorium, 1373848518 | |
396
+
221
397
  ## The World Cups' articles
222
398
 
223
399
  The grounds each World Cup used, and where its final was played, were read from the venue section of the tournament's English Wikipedia article at the revision named (32 tournaments), by the same address. FIFA's own pages are not used.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <h1 align="center">Kyogijo Stadiums <sub>競技場</sub></h1>
2
2
 
3
3
  <p align="center"><strong>Sports surfaces as SVG, drawn to scale, with the score on them.</strong><br>
4
- The NFL, CFL and IFAF football fields, the NHL rink, the NBA court, the soccer pitch and futsal court, the baseball field of every MLB ballpark, current and past, and every NPB home park, and the surfaces of curling, athletics, speed, short track and figure skating, swimming, water polo, diving, artistic swimming, tennis, volleyball (indoor, beach and sitting), badminton, pickleball, table tennis, padel, squash, racquetball, sepak takraw, teqball, roundnet, netball, lacrosse, rugby, Australian football, Gaelic games, cricket, field hockey and handball, thirty-three sports in all, each drawn from its rulebook or its published distances, with each team's name and logo on its side and the score in the middle, with stands and a crowd, a pageant of flags and a 3D view. Wide or tall, light or dark, a compact badge for a list, a helper for React, a custom element and a frame for a page that runs no script. One function, no dependencies.</p>
4
+ The NFL, CFL and IFAF football fields, the NHL rink, the NBA court, the soccer pitch and futsal court, the baseball field of every MLB ballpark, current and past, and every NPB home park, the rink and court of 167 NHL, NBA, WNBA and PWHL arenas, and the surfaces of curling, athletics, speed, short track and figure skating, swimming, water polo, diving, artistic swimming, tennis, volleyball (indoor, beach and sitting), badminton, pickleball, table tennis, padel, squash, racquetball, sepak takraw, teqball, roundnet, netball, lacrosse, rugby, Australian football, Gaelic games, cricket, field hockey, handball, judo, karate, kendo, sumo, kyūdō and a dojo of tatami, thirty-nine sports in all, each drawn from its rulebook or its published distances, with each team's name and logo on its side and the score in the middle, a lineup and the situation of the game on them, with stands and a crowd, a pageant of flags and a 3D view. Wide or tall, light or dark, a compact badge for a list, a helper for React, a custom element and a frame for a page that runs no script. One function, no dependencies.</p>
5
5
 
6
6
  <p align="center">
7
7
  <a href="https://github.com/johnmorrisdotca/kyogijo-stadiums/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/johnmorrisdotca/kyogijo-stadiums/actions/workflows/ci.yml/badge.svg"></a>
@@ -72,7 +72,7 @@ console.log(svg.startsWith("<svg"), svg.includes("Northern Owls 3, Lakeshore Anc
72
72
 
73
73
  ## Features
74
74
 
75
- - **Thirty-three surfaces, to scale.** The NFL field (360 by 160 feet with its end zones), the CFL field (450 by 195), the IFAF field, the NHL rink (200 by 85 with a 28-foot corner radius), the NBA court (94 by 50), the soccer pitch (105 by 68 metres, in ten sizes and variants), the baseball field, the curling sheet (150 by 15 feet 7 inches) and the courts of tennis, volleyball (beach and sitting), badminton, pickleball, table tennis, padel, squash, racquetball, sepak takraw, teqball, roundnet and netball, the pools of swimming, water polo, diving and artistic swimming, the athletics stadium, the skating rinks, and the fields of lacrosse, rugby, Australian football, Gaelic games, cricket, field hockey and handball, with the lines, circles, keys, boxes and goals of each. Every figure is cited in [sources](./docs/sources.md). [The surfaces](./docs/surfaces.md).
75
+ - **Thirty-nine surfaces, to scale.** The NFL field (360 by 160 feet with its end zones), the CFL field (450 by 195), the IFAF field, the NHL rink (200 by 85 with a 28-foot corner radius), the NBA court (94 by 50), the soccer pitch (105 by 68 metres, in ten sizes and variants), the baseball field, the curling sheet (150 by 15 feet 7 inches) and the courts of tennis, volleyball (beach and sitting), badminton, pickleball, table tennis, padel, squash, racquetball, sepak takraw, teqball, roundnet and netball, the pools of swimming, water polo, diving and artistic swimming, the athletics stadium, the skating rinks, the fields of lacrosse, rugby, Australian football, Gaelic games, cricket, field hockey and handball, and the budō: the competition areas of judo and karate, the kendo shiai-jo, the sumo dohyō, the kyūdōjō and a dojo of tatami, with the lines, circles, keys, boxes and goals of each. Every figure is cited in [sources](./docs/sources.md). [The surfaces](./docs/surfaces.md).
76
76
  - **Each league's rulebook.** `league: "fiba"` draws a court as FIBA marks it: 48 variants, from the WNBA, the NCAA and the IIHF to Little League, PONY, softball, Curling Canada, FIVB's beach volleyball, rugby league and the NLL's box lacrosse, each cited. [League variants](./docs/variants.md).
77
77
  - **A realistic basketball floor.** `court: { hardwood: true }` draws maple boards that run the length of the court with staggered ends, grain and tone, stained keys, circle and border, a strip behind each baseline in the team's colour, the baskets and stanchions with soft shadows from above, a coaching box and benches, and a satin sheen, in every league and every renderer, with the detail dropping at small sizes. The clean floor stays the default. [Hardwood](./docs/hardwood.md).
78
78
  - **The stands and the crowd.** `crowd: true` draws the seating round any surface that has spectators: a bowl, two sides, a horseshoe, an arena's courtside rows, or a ballpark's grandstands and bleachers laid behind the park's own fence, with the people as a seeded pattern of heads and shoulders in the home colours, the visitors at an end, the empty seats showing (`density`, or `attendance` over `capacity`), a card display on request, and a soccer pitch inside a gridiron stadium's footprint, to scale. A few kB of patterns, blocks at small sizes, every renderer, and the stands' rings, heights and rake as data. [The crowd](./docs/crowd.md).
@@ -82,22 +82,28 @@ console.log(svg.startsWith("<svg"), svg.includes("Northern Owls 3, Lakeshore Anc
82
82
  - **Lacrosse, rugby, Australian football, Gaelic games, cricket, field hockey and handball, from their rulebooks.** The fields and floors of World Lacrosse, the NCAA, the PLL and the NLL; World Rugby's union and the NRL's and IRL's league; the AFL's oval at the size of a named ground; the GAA's field for football and hurling; a cricket ground with a boundary of your own and the 30-yard circle; the FIH's pitch and the IHF's court. A score is goals and behinds (10.12 (72)), goals and points (2-14 (20)) or a board of runs, wickets and overs. [Field sports](./docs/field-sports.md).
83
83
  - **The athletics stadium, from World Athletics' rules.** The 400 m track with its lanes, the staggers worked out from the running lines (the 200 m and 400 m to the millimetre of the Manual's table, the 800 m and 4 x 400 m from the breakline's own construction), curved and relay starts, hurdles, the steeplechase with the water jump inside or outside, every field event in its place or alone at a large scale, a close-up of each start with stencil lane numbers, the covered 200 m track, an ink-only `line-drawing` look, and lane draws, results, a race replay and the marks of throws and jumps. [The athletics stadium](./docs/athletics.md).
84
84
  - **The skating rinks, from the ISU's rules.** The standard 400 m speed skating track with its two lanes, warm-up lane, blocks and coaches' area, and the starting and finishing lines of every race worked out lane by lane from the track's measurements (held to the layout plan's own dimensions); the short track's oval of 111.12 m with its seven blocks in each curve, five or seven tracks and starting positions; the figure skating rink of 60 by 30 m with its judges' seats; and pairs, results, a race replay and the elements of a programme on the ice. [The skating rinks](./docs/skating.md).
85
+ - **The budō, from the federations' rules.** The IJF's judo competition area (a contest area of 8 m to 10 m in a safety area of 3 m or more, with the common safe zone, the free zone, the platform, the tape and the tatami of 2 m by 1 m in the IJF's yellow and red, or other looks) and the All Japan Judo Federation's (its tatami of 182 by 91 cm, its red danger zone), the WKF's karate areas (8 m, the boundary band, the 2 m safety area, the start mats), the kendo shiai-jo (9 m to 11 m, the cross and the kaishi-sen), the sumo dohyō (the 6.7 m clay square, the ring of 20 tawara, the shikiri-sen, the four tassels), the kyūdōjō (kinteki at 28 m and enteki at 60 m, the shajō, the yamichi and the azuchi), and **a dojo builder**: a floor of tatami laid as real units (no four corners meet), in jō or metres, with the walls, doors, windows, shrine and kamiza. Five famous halls are on the atlas (the Kodokan's main dojo of 420 jō, the Nippon Budokan's octagon, the Kokugikan, the old Butokuden and the Budokwai), each with only what a source gives; the scores are judo's ippon, waza-ari and shido, karate's points, kendo's points and sumo's kimarite. [The budō](./docs/budo.md).
85
86
  - **Soccer, to the Laws.** A pitch from Law 1 of the IFAB Laws of the Game of any size, with presets (international, UEFA, MLS, NCAA, the FA's 9-, 7- and 5-a-side, FIFA's futsal), half pitches, five mowing patterns, four goal styles, penalties and extra time in a score. [Soccer](./docs/soccer.md).
86
87
  - **Every ballpark.** The 30 current MLB parks and 44 that MLB clubs have left (the Polo Grounds, Ebbets Field, the Astrodome and more), and the 12 home parks of Nippon Professional Baseball with eight other NPB grounds, each with its fence drawn from the distances published for it; a past park whose fence moved is drawn as it stood in a season. [Ballparks](./docs/ballparks.md).
87
- - **Soccer grounds and an atlas.** 64 soccer grounds, each pitch at its published size, and every park and ground on a map, by sport, league, country and year, each found by any name it has in English, Japanese or its own language (`Koshien Stadium` is also `甲子園`, `San Siro` is `サン・シーロ`). [The grounds](./docs/grounds.md), [the atlas](./docs/atlas.md), [names](./docs/ballparks.md#names).
88
+ - **Soccer grounds, arenas and an atlas.** 64 soccer grounds, each pitch at its published size, and 167 NHL, NBA, WNBA and PWHL arenas (`drawKyogijo({ sport: "nhl", arena: "boston-garden" })`), a rink or a court at the arena's own size where an article gives one, and every park, ground, arena and budō hall (330 places) on a map, by sport, league, country and year, each found by any name it has in English, Japanese or its own language (`Koshien Stadium` is also `甲子園`, `San Siro` is `サン・シーロ`). [The grounds](./docs/grounds.md), [the arenas](./docs/arenas.md), [the atlas](./docs/atlas.md), [names](./docs/ballparks.md#names).
88
89
  - **Walls and quirks.** How high the fence stands, stretch by stretch and season by season (the Green Monster at 37 feet 2 inches, the Crawford Boxes, the Baggie), drawn as a band outside the fence whose width and shade say the height, with a key (`walls`); and Tal's Hill, Wrigley Field's ivy and basket, overhangs, poles, bullpens, the backstop and the dugouts (`quirks`), each from the park's article, none guessed: [ballparks](./docs/ballparks.md).
89
90
  - **Special games.** A surface set inside another, to scale: an NHL rink on a ballpark's infield or a football stadium's field (the Winter Classic, the Stadium Series, the Heritage Classic), a college basketball court on the deck of a carrier, a baseball field laid over a London stadium's pitch. 18 games, each with its day, its venue and its sources, and the place of the rink cited where a source gives it and marked as a convention where none does. [Special games](./docs/special-games.md).
90
91
  - **Surfaces through the years.** `year: 1975` draws a surface as its league's rules marked it that season, each change cited. [Surfaces through the years](./docs/eras.md).
91
92
  - **Score mode.** Each team's name and logo on its side (the end zones of a football field, the ends of the ice, the halves of the court, the dugouts of a ballpark) and the score large in the middle, with the competition, the status and the date, and the winner emphasised; a flag or a crest can be round, in a circle with a ring (`markShape: "round"`). [Score and layout](./docs/score.md#round-marks).
93
+ - **The situation of a game.** `situation` draws what is happening: hockey's power play or empty net as a pill with the attacking zone tinted, and a shootout as a strip of dots; baseball's runners lit on the diamond with a scorebug (outs, inning, count); football's line of scrimmage, first-down line, red zone and down-and-distance tag, with a drive chart; in the badge and the compact card too, and in the description. [The situation](./docs/situation.md).
94
+ - **Lineups.** A `lineup` layer places a team's players by position code (`GK`, `CB`, `HK`, `C`) with no coordinates: it reads where each stands from a formation (36 of them, in 13 sports), draws a disc or a jersey with the shirt number and the name under it, a captain's C and a flag, and puts the visitors at the other end. A drawing with a lineup puts the score in the strip under it, so the panel hides no player. [Lineups](./docs/team-shape.md#lineups).
92
95
  - **A pageant.** Each team's flag or crest laid large over its half of the surface, as a stadium lays giant flags and crests for a final: `pageant: "carpet"` (a flag at its own ratio with a border and a gentle fabric) or `"stage"` (a crest on a round disc with a gold ring), an emblem or a trophy of your own in the centre circle, the score in the middle or in the strip, upright wide and tall, in light and dark, with an entrance in CSS for readers who have not asked for less motion. [The pageant](./docs/pageant.md).
96
+ - **Trophies, medals, balls and crests, by id.** `useEmblems(renderEmblem)` plugs in the sister package [Dougu Sports 道具](https://johnmorrisdotca.github.io/dougu-sports/) in one line, and an id goes wherever a logo, a flag or a mark is taken: `logo: "crest:shield"` (a crest in the team's colour with its letters), `pageant: { emblem: "trophy:hockey-cup" }`, `"sport:nhl/line"`, `"ball:puck"`, `"cup"`. Kyogijo bundles no emblem and keeps zero dependencies; without the plug-in an id is refused like any unsafe address. [Emblems](./docs/emblems.md).
93
97
  - **Zoom to a part of a surface.** `range: "offensive-zone"` crops a drawing to a rink's zone, a half court, the paint, the red zone, a soccer half, third or penalty area, the infield, a curling house, or a box of your own in any frame, with its data, heat, labels and score following. [Display ranges](./docs/ranges.md).
94
98
  - **Wide, tall or fit the box.** Every surface lies wide or tall: tall turns it a quarter, keeps every word upright and puts the teams top and bottom. With `orientation: "auto"` the browser helpers follow the box.
99
+ - **Where a point lies, by the rules, and a click as a place.** `zoneAt("nhl", [69, 22], { frame: "nhl-api" })` names the zone and the area in it from the rink's, court's, pitch's, park's or field's own figures (the offensive zone and its face-off circle, the frontcourt and the corner three, the attacking third and the six-yard box, the infield and the warning track, the red zone and between the hashes), with `isThreePointer`, `inSlot`, `inPenaltyArea`, `isFair`, `overWall` and the like, and `isHomeRun(park, point, { height })` from the park's fence and wall; `clientPointToField(svg, x, y, { provider })` is a pointer's place in any of the frames, with the zone, and `fieldPointToClient` the way back. `marks: true` writes `data-mark-id`, `data-index` and `data-zone` on every mark of a layer, for one listener to link it to a table. [Zones](./docs/zones.md), [pointing](./docs/pointer.md).
100
+ - **Goals, the strike zone and the stumps, end-on.** A goal mouth for hockey (6 by 4 feet), soccer, handball, water polo, lacrosse (6 by 6) and field hockey with the shots laid on it and its zones (the top shelf, the five-hole, the corners), the catcher's view of the strike zone with its nine and thirteen zones and the pitches numbered, and the wicket from the bowler's end with its line and length zones. [Targets](./docs/targets.md).
95
101
  - **Data on the surface.** Points, lines, arrows, text, heat maps, hexagons, zone charts and density contours over any surface, in its feet or a data provider's frame, cut to its outline, with a table for each layer; ready-made shot and pass charts, and the road to a tournament's final (`roadToFinal`: the two finalists' matches as round flags with the scores, in four sizes). [Data layers](./docs/layers.md), [charts](./docs/charts.md).
96
102
  - **Small multiples and backgrounds.** `drawGrid` puts many drawings in one SVG, under a title and a subtitle, over a credit line, with a key they share, in a size for a social card, a square post or a phone; `background` lays a quiet pattern (felt, grass, wood, ice, paper, a grid, dots) or a photograph behind a drawing or a grid. [Layouts and backgrounds](./docs/layouts.md).
97
103
  - **Replay.** Tracking data played on any surface: the players with their numbers, the ball and its trail, and the passes, shots and goals as they happen, with controls, the keyboard and a live region, steps for a reader who prefers reduced motion, and a pause when the page is hidden. [Replay](./docs/replay.md).
98
104
  - **A 3D view.** Any surface as a floor that turns by mouse, touch, wheel or keys, with four viewpoints (overhead, broadcast, end-on, low corner) and a reset, and what the rulebook stands on it at its height: the net and antennae of volleyball, the nets of tennis, badminton, pickleball and table tennis, baskets and stanchions, rink boards and glass, goals, the posts of football, rugby, Gaelic and Australian football, stumps, a ballpark's fence, the walls of padel, squash and racquetball (cut away on the side nearest the eye), a swimming pool's blocks and flags, a diving well's boards and platforms, a water polo goal, a jump's uprights and bar, a throwing cage, the hurdles, and the padding of a skating track. Plain DOM and CSS over the same SVG, flat where 3D is not drawn. [The 3D view](./docs/turn.md).
99
105
  - **Renderers.** The same drawing as plain data (a scene), on a canvas (a browser's or a Node canvas), in a d3 selection, as a mark of an Observable Plot, as GeoJSON and as a PNG in Node, each an entry of its own that imports nothing from outside the package. [Renderers](./docs/renderers.md).
100
- - **Units and frames.** Each surface in its rulebook's unit and any other, and 42 coordinate frames (ten soccer providers, the NHL API, HockeyTech, NBA stats, NFL tracking, MLBAM, Retrosheet, a curling stone's place from the button, a place from the net in each net sport (from the centre of the court in squash, racquetball, roundnet and netball), the centre of each field sport's surface, the middle of the water of each pool, the middle of the athletics stadium and of each skating rink) to move a provider's points onto a surface. [Units](./docs/units.md), [coordinate frames](./docs/frames.md).
106
+ - **Units and frames.** Each surface in its rulebook's unit and any other, and 48 coordinate frames (ten soccer providers, the NHL API, HockeyTech, NBA stats, NFL tracking, MLBAM, Retrosheet, a curling stone's place from the button, a place from the net in each net sport (from the centre of the court in squash, racquetball, roundnet and netball), the centre of each field sport's surface, the middle of the water of each pool, the middle of the athletics stadium and of each skating rink) to move a provider's points onto a surface. [Units](./docs/units.md), [coordinate frames](./docs/frames.md).
101
107
  - **A compact badge and a compact card.** One strip for a list, or the surface with that strip under it.
102
108
  - **Light and dark**, by the device or the page, and every colour a custom property; eight named looks, colours by feature, line widths and dashes, goal styles and mowing patterns, and arrows, axes and labels for teaching. [Theming](./docs/theming.md), [annotations](./docs/annotations.md).
103
109
  - **Accessible.** Each drawing is an `img` with a title and a description that say the surface and the result, in English or Japanese. [Accessibility](./docs/accessibility.md).
@@ -110,14 +116,16 @@ console.log(svg.startsWith("<svg"), svg.includes("Northern Owls 3, Lakeshore Anc
110
116
  | Part | What it is |
111
117
  | --- | --- |
112
118
  | `drawKyogijo`, `drawSurface`, `drawScore`, `drawBadge` | The drawing, as a string of SVG. |
113
- | `SPORTS`, `PARKS`, `PARK_IDS`, `COURT_THEMES` | The thirty-three sports, the 94 ballparks, the court looks. |
119
+ | `SPORTS`, `PARKS`, `PARK_IDS`, `COURT_THEMES` | The thirty-nine sports, the 94 ballparks, the court looks. |
114
120
  | `SOCCER_PITCHES`, `SOCCER_PROVIDERS`, `rescale`, `soccerSpec` | The soccer pitches, the data providers' coordinate systems and the map between them. |
115
121
  | `GROUNDS`, `groundById` | The 64 soccer grounds, each pitch at its own size. |
116
122
  | `EVENTS`, `eventOptions` | The 18 special games: a rink in a ballpark, a court on a carrier's deck, with `host` and `placement` in the options. |
123
+ | `./zones`, `./pointer`, `./target` | Where a point lies by a sport's own rules, and the yes-or-no questions; a click on a drawing as a place in a provider's numbers; a goal, the strike zone or the stumps seen end-on. |
117
124
  | `./geometry`, `./frames`, `./layers`, `./charts`, `./replay` | The dimensions in any unit; the providers' frames; data layers; ready-made charts; tracking data played on a surface. |
118
125
  | `./athletics` | The athletics stadium: the plan, the track's geometry (the stagger of any lane), the races and field events, and the lane draw, results, race replay and field marks charts. |
126
+ | `./budo` | The budō: the judo and karate areas, the kendo shiai-jo, the sumo dohyō, the kyūdōjō and the dojo builder (`dojo`, `drawDojo`), the plans, the tatami layout, the 82 kimarite, the looks and the five halls. |
119
127
  | `./skating` | The skating rinks: the plan, the long track's geometry (a skater's way round it, the start of a race), the races, and the pairs, starting positions, results, race replay and programme elements charts. |
120
- | `./parks`, `./grounds`, `./atlas`, `./eras`, `./leagues`, `./events` | The ballparks, the grounds, every place, the markings of a season, each league's rulebook, the special games. |
128
+ | `./parks`, `./grounds`, `./arenas`, `./atlas`, `./eras`, `./leagues`, `./events` | The ballparks, the grounds, the arenas, every place, the markings of a season, each league's rulebook, the special games. |
121
129
  | `./turn` | A surface as a 3D view that turns, with the net, basket, goal or posts standing on it. |
122
130
  | `./scene`, `./canvas`, `./d3`, `./plot`, `./geojson`, `./png` | The drawing as data; on a canvas; in a d3 selection; as an Observable Plot mark; as GeoJSON; as a PNG (the optional peer `@resvg/resvg-js`). |
123
131
  | `./layouts` | `drawGrid` and `GRID_PRESETS`: small multiples with a title, a subtitle, a key and a credit line; the grounds behind a drawing or a grid. |
@@ -175,6 +183,27 @@ console.log(svg.includes("Cup Final, Game 7"), svg.includes("Final/OT"));
175
183
  <br><em>A football field: the end zones in the teams' colours, the score at midfield.</em>
176
184
  </p>
177
185
 
186
+ ### Trophies, medals, balls and crests
187
+
188
+ Kyogijo draws none of its own. Plug in [Dougu Sports](https://johnmorrisdotca.github.io/dougu-sports/) (`npm install @johnmorrisdotca/dougu-sports`) once, and its 167 emblems are ids: [Emblems](./docs/emblems.md).
189
+
190
+ ```ts
191
+ import { drawKyogijo, useEmblems } from "@johnmorrisdotca/kyogijo-stadiums";
192
+ import { renderEmblem } from "@johnmorrisdotca/dougu-sports/emblems";
193
+
194
+ useEmblems(renderEmblem);
195
+
196
+ const svg = drawKyogijo({
197
+ sport: "soccer",
198
+ away: { name: "Harbour City Gulls", abbr: "HCG", score: 2, color: "#1f5fa8", logo: "crest:shield" },
199
+ home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 1, color: "#b5452c", logo: "crest:roundel" },
200
+ status: "final",
201
+ pageant: { style: "stage", emblem: "trophy:soccer-globe", emblemName: "Northern Cup" },
202
+ });
203
+ console.log(svg.includes(encodeURIComponent(">HCG<")), svg.includes("Northern Cup"));
204
+ // true true
205
+ ```
206
+
178
207
  ### A bare surface, and tall for a phone
179
208
 
180
209
  ```ts
@@ -199,7 +228,7 @@ console.log(box(wide), box(tall));
199
228
  <br><em>The same game tall: the teams top and bottom, every word upright.</em>
200
229
  </p>
201
230
 
202
- [The surfaces](./docs/surfaces.md) lists the thirty-three, with their sizes and what is drawn; [score and layout](./docs/score.md) has the options of a score, a strip and a compact card.
231
+ [The surfaces](./docs/surfaces.md) lists the thirty-nine, with their sizes and what is drawn; [score and layout](./docs/score.md) has the options of a score, a strip and a compact card.
203
232
 
204
233
  ### A league's rulebook
205
234
 
@@ -443,7 +472,7 @@ console.log(zone.includes('data-range="offensive-zone"'), zone.includes("Shows o
443
472
  // true true
444
473
  ```
445
474
 
446
- Lines, arrows, text, heat maps, hexagons, zones and contours are in [data layers](./docs/layers.md); a shot chart, a shot map, a spray chart, a pass chart and a soccer shot map are one call each in [charts](./docs/charts.md). Pass networks, formations, Voronoi cells, Delaunay triangles, hulls, flow fields and sonars are layers too: [team shape](./docs/team-shape.md). Every kind is drawn, with its code, in the [gallery](https://johnmorrisdotca.github.io/kyogijo-stadiums/docs/gallery.html).
475
+ Lines, arrows, text, heat maps, hexagons, zones and contours are in [data layers](./docs/layers.md); a shot chart, a shot map, a spray chart, a pass chart and a soccer shot map are one call each in [charts](./docs/charts.md). Pass networks, formations, lineups (a team's players placed by position code, as discs or jerseys), Voronoi cells, Delaunay triangles, hulls, flow fields and sonars are layers too: [team shape](./docs/team-shape.md). Every kind is drawn, with its code, in the [gallery](https://johnmorrisdotca.github.io/kyogijo-stadiums/docs/gallery.html).
447
476
 
448
477
  ### Small multiples on a card
449
478
 
@@ -533,7 +562,7 @@ Nothing is branded. The drawing is coloured by custom properties on its `svg`, w
533
562
 
534
563
  ## Limits
535
564
 
536
- Each is held by a test: thirty-three sports, ten soccer pitches and ten providers, 94 ballparks, 64 grounds, six units, forty-two frames, a drawing of under 22 kB. The table, made from the code, is [limits](./docs/limits.md).
565
+ Each is held by a test: thirty-nine sports, ten soccer pitches and ten providers, 94 ballparks, 64 grounds, six units, forty-eight frames, a drawing of under 22 kB. The table, made from the code, is [limits](./docs/limits.md).
537
566
 
538
567
  ## Accessibility
539
568
 
@@ -586,7 +615,7 @@ Using Kyogijo Stadiums in something? Open an *Add my project* issue and we will
586
615
  ### The family
587
616
 
588
617
  <!-- family:start (made by scripts/family-readme.mjs from scripts/family-template.mjs; change those, not this) -->
589
- Kyogijo Stadiums is one of twenty-six packages, each made for the same site, each at
618
+ Kyogijo Stadiums is one of twenty-eight packages, each made for the same site, each at
590
619
  [github.com/johnmorrisdotca](https://github.com/johnmorrisdotca). The code of every one is MIT.
591
620
 
592
621
  - [Korokoro](https://github.com/johnmorrisdotca/korokoro) (コロコロ): dice, with notation, exact odds, real sounds and the dice of many games. [Demo](https://johnmorrisdotca.github.io/korokoro/).
@@ -615,8 +644,10 @@ Kyogijo Stadiums is one of twenty-six packages, each made for the same site, eac
615
644
  - [Houseki](https://github.com/johnmorrisdotca/houseki) (宝石): gem and stone matching puzzles: falling triplets, stone collapse, colour chains and gem swap. [Demo](https://johnmorrisdotca.github.io/houseki/).
616
645
  - [Kyogijo Stadiums](https://github.com/johnmorrisdotca/kyogijo-stadiums) (競技場): sports fields, rinks, courts and ballparks drawn to scale as SVG, with each team and the score on them. [Demo](https://johnmorrisdotca.github.io/kyogijo-stadiums/).
617
646
  - [Taisen Brackets](https://github.com/johnmorrisdotca/taisen-brackets) (対戦): a sport-agnostic tournament bracket, drawn as SVG, from a list of ties. [Demo](https://johnmorrisdotca.github.io/taisen-brackets/).
647
+ - [Dougu Sports](https://github.com/johnmorrisdotca/dougu-sports) (道具): sports emblems as SVG: trophies, medals, crests, and the ball and gear of every sport, with optional 3D turning. [Demo](https://johnmorrisdotca.github.io/dougu-sports/).
648
+ - [Senshu Jerseys](https://github.com/johnmorrisdotca/senshu-jerseys) (選手): sports jerseys, sweaters, kits, caps, helmets and retired-number banners as SVG, front and back, with optional 2.5D turning. [Demo](https://johnmorrisdotca.github.io/senshu-jerseys/).
618
649
 
619
- **This package is Kyogijo Stadiums.** The demos of all twenty-six share one header and footer, so each links the rest.
650
+ **This package is Kyogijo Stadiums.** The demos of all twenty-eight share one header and footer, so each links the rest.
620
651
  <!-- family:end -->
621
652
 
622
653
  ## Development
@@ -654,3 +685,4 @@ The code is [MIT](./LICENSE) © John Morris. The ballparks' fence distances are
654
685
  | The Wikidata item of each ballpark | Wikidata, as linked from the cited article | CC0 |
655
686
  | 64 soccer grounds | English Wikipedia articles at the revision cited; Wikidata | Facts; CC BY-SA 4.0 articles, no text used; CC0 |
656
687
  | The demo's teams and emblems | Written for this package | MIT |
688
+ | The demo's trophies, medals, balls and crests | [Dougu Sports](https://github.com/johnmorrisdotca/dougu-sports), a development dependency copied into the demo site with its licences; the package itself draws none | MIT, and its sources' licences in its NOTICE.md |
@@ -0,0 +1,4 @@
1
+ export { ARENA_IDS, ARENAS, arenaById, arenaByName, arenaByWikidata, arenaCourtIn, arenaNameIn, arenaOfficialName, arenaRinkIn, arenaSourceUrl, arenasByName } from "./arenas.ts";
2
+ export { officialName, plainName } from "./names.ts";
3
+ export type { PlaceAlias, PlaceNameKind } from "./names.ts";
4
+ export type { Arena, ArenaCapacity, ArenaData, ArenaName, ArenaSize, ArenaSource } from "./arenas.ts";
@@ -0,0 +1,3 @@
1
+ // The arenas of the NHL, the NBA, the WNBA and the PWHL: where each stands, when it was in use, its names, its seats for each sport and the size of its rink or court where the sources publish one.
2
+ export { ARENA_IDS, ARENAS, arenaById, arenaByName, arenaByWikidata, arenaCourtIn, arenaNameIn, arenaOfficialName, arenaRinkIn, arenaSourceUrl, arenasByName } from "./arenas.js";
3
+ export { officialName, plainName } from "./names.js";