colregs 0.1.1 → 0.2.2
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.
- package/LICENSE +194 -26
- package/PROVENANCE.md +45 -12
- package/README.md +222 -23
- package/data/applicability.json +1252 -190
- package/data/deprecated-identifiers.json +7 -0
- package/data/facts.json +556 -113
- package/data/geometry.json +33 -33
- package/data/images.json +51 -25
- package/data/lights.json +35 -35
- package/data/rules.json +787 -3
- package/docs/adr/0001-name-and-jurisdiction-model.md +119 -1
- package/docs/adr/0003-language-as-a-dimension.md +220 -0
- package/docs/adr/0004-licence-layering.md +78 -0
- package/docs/adr/0005-rule-categories-and-the-situation-record.md +323 -0
- package/docs/adr/0006-json-schema-and-identifier-diff.md +95 -0
- package/docs/adr/0007-rule26-overrides-and-aground.md +68 -0
- package/docs/adr/0008-mooring-buoy-modifier.md +87 -0
- package/docs/budgets.json +162 -0
- package/docs/conventions.md +27 -0
- package/docs/gates.json +84 -0
- package/docs/identifiers.md +435 -0
- package/docs/part-b-invariants.md +922 -0
- package/docs/requirements.md +1251 -23
- package/docs/verification/2026-08-30-q6-q8.md +278 -0
- package/docs/verification/2026-09-05-rule27f-rule28-anchor-scenarios.md +330 -0
- package/fixtures/applicability-fixtures.json +361 -227
- package/fixtures/situation-fixtures.json +3673 -0
- package/package.json +16 -4
- package/schema/applicability-fixtures.schema.json +49 -0
- package/schema/applicability.schema.json +401 -0
- package/schema/deprecated-identifiers.schema.json +29 -0
- package/schema/facts.schema.json +793 -0
- package/schema/geometry.schema.json +239 -0
- package/schema/images.schema.json +53 -0
- package/schema/lights.schema.json +131 -0
- package/schema/rules.schema.json +50 -0
- package/schema/situation-fixtures.schema.json +325 -0
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
{
|
|
6
6
|
"name": "sailing yacht 11.6 m under sail",
|
|
7
7
|
"facts": {
|
|
8
|
-
"propulsion": "sail",
|
|
9
|
-
"activity": "none",
|
|
10
|
-
"position": "underway",
|
|
11
|
-
"length_m": 11.6
|
|
8
|
+
"fact:propulsion": "propulsion:sail",
|
|
9
|
+
"fact:activity": "activity:none",
|
|
10
|
+
"fact:position": "position:underway",
|
|
11
|
+
"fact:length_m": 11.6
|
|
12
12
|
},
|
|
13
13
|
"expect": [
|
|
14
14
|
"25a",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
{
|
|
20
20
|
"name": "same yacht motoring",
|
|
21
21
|
"facts": {
|
|
22
|
-
"propulsion": "power",
|
|
23
|
-
"activity": "none",
|
|
24
|
-
"position": "underway",
|
|
25
|
-
"length_m": 11.6
|
|
22
|
+
"fact:propulsion": "propulsion:power",
|
|
23
|
+
"fact:activity": "activity:none",
|
|
24
|
+
"fact:position": "position:underway",
|
|
25
|
+
"fact:length_m": 11.6
|
|
26
26
|
},
|
|
27
27
|
"expect": [
|
|
28
28
|
"23a1",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
{
|
|
35
35
|
"name": "power vessel 15 m underway",
|
|
36
36
|
"facts": {
|
|
37
|
-
"propulsion": "power",
|
|
38
|
-
"activity": "none",
|
|
39
|
-
"position": "underway",
|
|
40
|
-
"length_m": 15
|
|
37
|
+
"fact:propulsion": "propulsion:power",
|
|
38
|
+
"fact:activity": "activity:none",
|
|
39
|
+
"fact:position": "position:underway",
|
|
40
|
+
"fact:length_m": 15
|
|
41
41
|
},
|
|
42
42
|
"expect": [
|
|
43
43
|
"23a1",
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
{
|
|
49
49
|
"name": "power vessel 55 m underway",
|
|
50
50
|
"facts": {
|
|
51
|
-
"propulsion": "power",
|
|
52
|
-
"activity": "none",
|
|
53
|
-
"position": "underway",
|
|
54
|
-
"length_m": 55
|
|
51
|
+
"fact:propulsion": "propulsion:power",
|
|
52
|
+
"fact:activity": "activity:none",
|
|
53
|
+
"fact:position": "position:underway",
|
|
54
|
+
"fact:length_m": 55
|
|
55
55
|
},
|
|
56
56
|
"expect": [
|
|
57
57
|
"23a1",
|
|
@@ -62,11 +62,11 @@
|
|
|
62
62
|
{
|
|
63
63
|
"name": "6 m outboard, max speed 6 kn",
|
|
64
64
|
"facts": {
|
|
65
|
-
"propulsion": "power",
|
|
66
|
-
"activity": "none",
|
|
67
|
-
"position": "underway",
|
|
68
|
-
"length_m": 6,
|
|
69
|
-
"max_speed_kn": 6
|
|
65
|
+
"fact:propulsion": "propulsion:power",
|
|
66
|
+
"fact:activity": "activity:none",
|
|
67
|
+
"fact:position": "position:underway",
|
|
68
|
+
"fact:length_m": 6,
|
|
69
|
+
"fact:max_speed_kn": 6
|
|
70
70
|
},
|
|
71
71
|
"expect": [
|
|
72
72
|
"23a1",
|
|
@@ -79,11 +79,11 @@
|
|
|
79
79
|
{
|
|
80
80
|
"name": "6 m outboard, max speed 20 kn",
|
|
81
81
|
"facts": {
|
|
82
|
-
"propulsion": "power",
|
|
83
|
-
"activity": "none",
|
|
84
|
-
"position": "underway",
|
|
85
|
-
"length_m": 6,
|
|
86
|
-
"max_speed_kn": 20
|
|
82
|
+
"fact:propulsion": "propulsion:power",
|
|
83
|
+
"fact:activity": "activity:none",
|
|
84
|
+
"fact:position": "position:underway",
|
|
85
|
+
"fact:length_m": 6,
|
|
86
|
+
"fact:max_speed_kn": 20
|
|
87
87
|
},
|
|
88
88
|
"expect": [
|
|
89
89
|
"23a1",
|
|
@@ -95,10 +95,10 @@
|
|
|
95
95
|
{
|
|
96
96
|
"name": "dinghy under sail, 3.5 m",
|
|
97
97
|
"facts": {
|
|
98
|
-
"propulsion": "sail",
|
|
99
|
-
"activity": "none",
|
|
100
|
-
"position": "underway",
|
|
101
|
-
"length_m": 3.5
|
|
98
|
+
"fact:propulsion": "propulsion:sail",
|
|
99
|
+
"fact:activity": "activity:none",
|
|
100
|
+
"fact:position": "position:underway",
|
|
101
|
+
"fact:length_m": 3.5
|
|
102
102
|
},
|
|
103
103
|
"expect": [
|
|
104
104
|
"25a",
|
|
@@ -110,10 +110,10 @@
|
|
|
110
110
|
{
|
|
111
111
|
"name": "10 m vessel under oars",
|
|
112
112
|
"facts": {
|
|
113
|
-
"propulsion": "oars",
|
|
114
|
-
"activity": "none",
|
|
115
|
-
"position": "underway",
|
|
116
|
-
"length_m": 10
|
|
113
|
+
"fact:propulsion": "propulsion:oars",
|
|
114
|
+
"fact:activity": "activity:none",
|
|
115
|
+
"fact:position": "position:underway",
|
|
116
|
+
"fact:length_m": 10
|
|
117
117
|
},
|
|
118
118
|
"expect": [
|
|
119
119
|
"25d2"
|
|
@@ -122,11 +122,11 @@
|
|
|
122
122
|
{
|
|
123
123
|
"name": "motoring but drifting in neutral, 11.6 m",
|
|
124
124
|
"facts": {
|
|
125
|
-
"propulsion": "power",
|
|
126
|
-
"activity": "none",
|
|
127
|
-
"position": "underway",
|
|
128
|
-
"making_way": false,
|
|
129
|
-
"length_m": 11.6
|
|
125
|
+
"fact:propulsion": "propulsion:power",
|
|
126
|
+
"fact:activity": "activity:none",
|
|
127
|
+
"fact:position": "position:underway",
|
|
128
|
+
"fact:making_way": false,
|
|
129
|
+
"fact:length_m": 11.6
|
|
130
130
|
},
|
|
131
131
|
"expect": [
|
|
132
132
|
"23a1",
|
|
@@ -138,10 +138,10 @@
|
|
|
138
138
|
{
|
|
139
139
|
"name": "anchored, 11.6 m",
|
|
140
140
|
"facts": {
|
|
141
|
-
"propulsion": "sail",
|
|
142
|
-
"activity": "none",
|
|
143
|
-
"position": "anchored",
|
|
144
|
-
"length_m": 11.6
|
|
141
|
+
"fact:propulsion": "propulsion:sail",
|
|
142
|
+
"fact:activity": "activity:none",
|
|
143
|
+
"fact:position": "position:anchored",
|
|
144
|
+
"fact:length_m": 11.6
|
|
145
145
|
},
|
|
146
146
|
"expect": [
|
|
147
147
|
"30a",
|
|
@@ -152,11 +152,11 @@
|
|
|
152
152
|
{
|
|
153
153
|
"name": "anchored, 6 m, clear of the channel",
|
|
154
154
|
"facts": {
|
|
155
|
-
"propulsion": "power",
|
|
156
|
-
"activity": "none",
|
|
157
|
-
"position": "anchored",
|
|
158
|
-
"length_m": 6,
|
|
159
|
-
"near_channel": false
|
|
155
|
+
"fact:propulsion": "propulsion:power",
|
|
156
|
+
"fact:activity": "activity:none",
|
|
157
|
+
"fact:position": "position:anchored",
|
|
158
|
+
"fact:length_m": 6,
|
|
159
|
+
"fact:near_channel": false
|
|
160
160
|
},
|
|
161
161
|
"expect": [
|
|
162
162
|
"30a",
|
|
@@ -168,10 +168,10 @@
|
|
|
168
168
|
{
|
|
169
169
|
"name": "aground, 15 m",
|
|
170
170
|
"facts": {
|
|
171
|
-
"propulsion": "power",
|
|
172
|
-
"activity": "none",
|
|
173
|
-
"position": "aground",
|
|
174
|
-
"length_m": 15
|
|
171
|
+
"fact:propulsion": "propulsion:power",
|
|
172
|
+
"fact:activity": "activity:none",
|
|
173
|
+
"fact:position": "position:aground",
|
|
174
|
+
"fact:length_m": 15
|
|
175
175
|
},
|
|
176
176
|
"expect": [
|
|
177
177
|
"30d-anchor",
|
|
@@ -181,23 +181,64 @@
|
|
|
181
181
|
{
|
|
182
182
|
"name": "aground, 10 m (30(f) relief from the red lights only, not the anchor lights)",
|
|
183
183
|
"facts": {
|
|
184
|
-
"propulsion": "power",
|
|
185
|
-
"activity": "none",
|
|
186
|
-
"position": "aground",
|
|
187
|
-
"length_m": 10
|
|
184
|
+
"fact:propulsion": "propulsion:power",
|
|
185
|
+
"fact:activity": "activity:none",
|
|
186
|
+
"fact:position": "position:aground",
|
|
187
|
+
"fact:length_m": 10
|
|
188
188
|
},
|
|
189
189
|
"expect": [
|
|
190
190
|
"30d-anchor"
|
|
191
191
|
]
|
|
192
192
|
},
|
|
193
|
+
{
|
|
194
|
+
"name": "fishing, aground, 30 m",
|
|
195
|
+
"facts": {
|
|
196
|
+
"fact:propulsion": "propulsion:power",
|
|
197
|
+
"fact:activity": "activity:fishing",
|
|
198
|
+
"fact:position": "position:aground",
|
|
199
|
+
"fact:length_m": 30
|
|
200
|
+
},
|
|
201
|
+
"expect": [
|
|
202
|
+
"30d-anchor",
|
|
203
|
+
"30d-red"
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "trawler, aground, 30 m",
|
|
208
|
+
"facts": {
|
|
209
|
+
"fact:propulsion": "propulsion:power",
|
|
210
|
+
"fact:activity": "activity:trawling",
|
|
211
|
+
"fact:position": "position:aground",
|
|
212
|
+
"fact:length_m": 30
|
|
213
|
+
},
|
|
214
|
+
"expect": [
|
|
215
|
+
"30d-anchor",
|
|
216
|
+
"30d-red"
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"name": "fishing at anchor, 30 m",
|
|
221
|
+
"facts": {
|
|
222
|
+
"fact:propulsion": "propulsion:power",
|
|
223
|
+
"fact:activity": "activity:fishing",
|
|
224
|
+
"fact:position": "position:anchored",
|
|
225
|
+
"fact:length_m": 30
|
|
226
|
+
},
|
|
227
|
+
"expect": [
|
|
228
|
+
"26c-id",
|
|
229
|
+
"30a",
|
|
230
|
+
"30b",
|
|
231
|
+
"30c"
|
|
232
|
+
]
|
|
233
|
+
},
|
|
193
234
|
{
|
|
194
235
|
"name": "trawler 30 m making way",
|
|
195
236
|
"facts": {
|
|
196
|
-
"propulsion": "power",
|
|
197
|
-
"activity": "trawling",
|
|
198
|
-
"position": "underway",
|
|
199
|
-
"making_way": true,
|
|
200
|
-
"length_m": 30
|
|
237
|
+
"fact:propulsion": "propulsion:power",
|
|
238
|
+
"fact:activity": "activity:trawling",
|
|
239
|
+
"fact:position": "position:underway",
|
|
240
|
+
"fact:making_way": true,
|
|
241
|
+
"fact:length_m": 30
|
|
201
242
|
},
|
|
202
243
|
"expect": [
|
|
203
244
|
"26b-id",
|
|
@@ -208,11 +249,11 @@
|
|
|
208
249
|
{
|
|
209
250
|
"name": "trawler 30 m drifting",
|
|
210
251
|
"facts": {
|
|
211
|
-
"propulsion": "power",
|
|
212
|
-
"activity": "trawling",
|
|
213
|
-
"position": "underway",
|
|
214
|
-
"making_way": false,
|
|
215
|
-
"length_m": 30
|
|
252
|
+
"fact:propulsion": "propulsion:power",
|
|
253
|
+
"fact:activity": "activity:trawling",
|
|
254
|
+
"fact:position": "position:underway",
|
|
255
|
+
"fact:making_way": false,
|
|
256
|
+
"fact:length_m": 30
|
|
216
257
|
},
|
|
217
258
|
"expect": [
|
|
218
259
|
"26b-id",
|
|
@@ -222,12 +263,12 @@
|
|
|
222
263
|
{
|
|
223
264
|
"name": "fishing other than trawling, gear out 200 m, not making way",
|
|
224
265
|
"facts": {
|
|
225
|
-
"propulsion": "power",
|
|
226
|
-
"activity": "fishing",
|
|
227
|
-
"position": "underway",
|
|
228
|
-
"making_way": false,
|
|
229
|
-
"length_m": 12,
|
|
230
|
-
"gear_extent_m": 200
|
|
266
|
+
"fact:propulsion": "propulsion:power",
|
|
267
|
+
"fact:activity": "activity:fishing",
|
|
268
|
+
"fact:position": "position:underway",
|
|
269
|
+
"fact:making_way": false,
|
|
270
|
+
"fact:length_m": 12,
|
|
271
|
+
"fact:gear_extent_m": 200
|
|
231
272
|
},
|
|
232
273
|
"expect": [
|
|
233
274
|
"26c-id",
|
|
@@ -237,11 +278,11 @@
|
|
|
237
278
|
{
|
|
238
279
|
"name": "not under command, making way",
|
|
239
280
|
"facts": {
|
|
240
|
-
"propulsion": "power",
|
|
241
|
-
"activity": "nuc",
|
|
242
|
-
"position": "underway",
|
|
243
|
-
"making_way": true,
|
|
244
|
-
"length_m": 40
|
|
281
|
+
"fact:propulsion": "propulsion:power",
|
|
282
|
+
"fact:activity": "activity:nuc",
|
|
283
|
+
"fact:position": "position:underway",
|
|
284
|
+
"fact:making_way": true,
|
|
285
|
+
"fact:length_m": 40
|
|
245
286
|
},
|
|
246
287
|
"expect": [
|
|
247
288
|
"27a-id",
|
|
@@ -251,11 +292,11 @@
|
|
|
251
292
|
{
|
|
252
293
|
"name": "not under command, drifting",
|
|
253
294
|
"facts": {
|
|
254
|
-
"propulsion": "power",
|
|
255
|
-
"activity": "nuc",
|
|
256
|
-
"position": "underway",
|
|
257
|
-
"making_way": false,
|
|
258
|
-
"length_m": 40
|
|
295
|
+
"fact:propulsion": "propulsion:power",
|
|
296
|
+
"fact:activity": "activity:nuc",
|
|
297
|
+
"fact:position": "position:underway",
|
|
298
|
+
"fact:making_way": false,
|
|
299
|
+
"fact:length_m": 40
|
|
259
300
|
},
|
|
260
301
|
"expect": [
|
|
261
302
|
"27a-id"
|
|
@@ -264,10 +305,10 @@
|
|
|
264
305
|
{
|
|
265
306
|
"name": "restricted in ability to maneuver, at anchor",
|
|
266
307
|
"facts": {
|
|
267
|
-
"propulsion": "power",
|
|
268
|
-
"activity": "ram",
|
|
269
|
-
"position": "anchored",
|
|
270
|
-
"length_m": 60
|
|
308
|
+
"fact:propulsion": "propulsion:power",
|
|
309
|
+
"fact:activity": "activity:ram",
|
|
310
|
+
"fact:position": "position:anchored",
|
|
311
|
+
"fact:length_m": 60
|
|
271
312
|
},
|
|
272
313
|
"expect": [
|
|
273
314
|
"27b-id",
|
|
@@ -279,13 +320,13 @@
|
|
|
279
320
|
{
|
|
280
321
|
"name": "dredger, restricted, obstruction to port, making way",
|
|
281
322
|
"facts": {
|
|
282
|
-
"propulsion": "power",
|
|
283
|
-
"activity": "ram_underwater",
|
|
284
|
-
"position": "underway",
|
|
285
|
-
"making_way": true,
|
|
286
|
-
"length_m": 45,
|
|
287
|
-
"obstruction_exists": true,
|
|
288
|
-
"obstruction_side": "port"
|
|
323
|
+
"fact:propulsion": "propulsion:power",
|
|
324
|
+
"fact:activity": "activity:ram_underwater",
|
|
325
|
+
"fact:position": "position:underway",
|
|
326
|
+
"fact:making_way": true,
|
|
327
|
+
"fact:length_m": 45,
|
|
328
|
+
"fact:obstruction_exists": true,
|
|
329
|
+
"fact:obstruction_side": "obstruction_side:port"
|
|
289
330
|
},
|
|
290
331
|
"expect": [
|
|
291
332
|
"27b-id",
|
|
@@ -296,11 +337,11 @@
|
|
|
296
337
|
{
|
|
297
338
|
"name": "towing astern, tow 150 m",
|
|
298
339
|
"facts": {
|
|
299
|
-
"propulsion": "power",
|
|
300
|
-
"activity": "towing",
|
|
301
|
-
"position": "underway",
|
|
302
|
-
"length_m": 40,
|
|
303
|
-
"tow_length_m": 150
|
|
340
|
+
"fact:propulsion": "propulsion:power",
|
|
341
|
+
"fact:activity": "activity:towing",
|
|
342
|
+
"fact:position": "position:underway",
|
|
343
|
+
"fact:length_m": 40,
|
|
344
|
+
"fact:tow_length_m": 150
|
|
304
345
|
},
|
|
305
346
|
"expect": [
|
|
306
347
|
"24a-m2",
|
|
@@ -310,11 +351,11 @@
|
|
|
310
351
|
{
|
|
311
352
|
"name": "towing astern, tow 300 m",
|
|
312
353
|
"facts": {
|
|
313
|
-
"propulsion": "power",
|
|
314
|
-
"activity": "towing",
|
|
315
|
-
"position": "underway",
|
|
316
|
-
"length_m": 40,
|
|
317
|
-
"tow_length_m": 300
|
|
354
|
+
"fact:propulsion": "propulsion:power",
|
|
355
|
+
"fact:activity": "activity:towing",
|
|
356
|
+
"fact:position": "position:underway",
|
|
357
|
+
"fact:length_m": 40,
|
|
358
|
+
"fact:tow_length_m": 300
|
|
318
359
|
},
|
|
319
360
|
"expect": [
|
|
320
361
|
"24a-m3",
|
|
@@ -324,11 +365,11 @@
|
|
|
324
365
|
{
|
|
325
366
|
"name": "pushing ahead, composite unit",
|
|
326
367
|
"facts": {
|
|
327
|
-
"propulsion": "power",
|
|
328
|
-
"activity": "pushing",
|
|
329
|
-
"position": "underway",
|
|
330
|
-
"length_m": 30,
|
|
331
|
-
"composite_unit": true
|
|
368
|
+
"fact:propulsion": "propulsion:power",
|
|
369
|
+
"fact:activity": "activity:pushing",
|
|
370
|
+
"fact:position": "position:underway",
|
|
371
|
+
"fact:length_m": 30,
|
|
372
|
+
"fact:composite_unit": true
|
|
332
373
|
},
|
|
333
374
|
"expect": [
|
|
334
375
|
"24b"
|
|
@@ -337,11 +378,11 @@
|
|
|
337
378
|
{
|
|
338
379
|
"name": "pushing ahead, not a composite unit",
|
|
339
380
|
"facts": {
|
|
340
|
-
"propulsion": "power",
|
|
341
|
-
"activity": "pushing",
|
|
342
|
-
"position": "underway",
|
|
343
|
-
"length_m": 30,
|
|
344
|
-
"composite_unit": false
|
|
381
|
+
"fact:propulsion": "propulsion:power",
|
|
382
|
+
"fact:activity": "activity:pushing",
|
|
383
|
+
"fact:position": "position:underway",
|
|
384
|
+
"fact:length_m": 30,
|
|
385
|
+
"fact:composite_unit": false
|
|
345
386
|
},
|
|
346
387
|
"expect": [
|
|
347
388
|
"24c"
|
|
@@ -350,22 +391,35 @@
|
|
|
350
391
|
{
|
|
351
392
|
"name": "constrained by draft",
|
|
352
393
|
"facts": {
|
|
353
|
-
"propulsion": "power",
|
|
354
|
-
"activity": "cbd",
|
|
355
|
-
"position": "underway",
|
|
356
|
-
"length_m": 200
|
|
394
|
+
"fact:propulsion": "propulsion:power",
|
|
395
|
+
"fact:activity": "activity:cbd",
|
|
396
|
+
"fact:position": "position:underway",
|
|
397
|
+
"fact:length_m": 200
|
|
357
398
|
},
|
|
358
399
|
"expect": [
|
|
359
400
|
"28"
|
|
360
401
|
]
|
|
361
402
|
},
|
|
403
|
+
{
|
|
404
|
+
"name": "constrained by draft, at anchor (issue #14: Rule 28 is an underway-only signal, so Rule 30 alone)",
|
|
405
|
+
"facts": {
|
|
406
|
+
"fact:propulsion": "propulsion:power",
|
|
407
|
+
"fact:activity": "activity:cbd",
|
|
408
|
+
"fact:position": "position:anchored",
|
|
409
|
+
"fact:length_m": 200
|
|
410
|
+
},
|
|
411
|
+
"expect": [
|
|
412
|
+
"30a",
|
|
413
|
+
"30c"
|
|
414
|
+
]
|
|
415
|
+
},
|
|
362
416
|
{
|
|
363
417
|
"name": "on pilotage duty, underway",
|
|
364
418
|
"facts": {
|
|
365
|
-
"propulsion": "power",
|
|
366
|
-
"activity": "pilot",
|
|
367
|
-
"position": "underway",
|
|
368
|
-
"length_m": 20
|
|
419
|
+
"fact:propulsion": "propulsion:power",
|
|
420
|
+
"fact:activity": "activity:pilot",
|
|
421
|
+
"fact:position": "position:underway",
|
|
422
|
+
"fact:length_m": 20
|
|
369
423
|
},
|
|
370
424
|
"expect": [
|
|
371
425
|
"29a"
|
|
@@ -374,22 +428,36 @@
|
|
|
374
428
|
{
|
|
375
429
|
"name": "mine clearance, underway",
|
|
376
430
|
"facts": {
|
|
377
|
-
"propulsion": "power",
|
|
378
|
-
"activity": "mine",
|
|
379
|
-
"position": "underway",
|
|
380
|
-
"length_m": 60
|
|
431
|
+
"fact:propulsion": "propulsion:power",
|
|
432
|
+
"fact:activity": "activity:mine",
|
|
433
|
+
"fact:position": "position:underway",
|
|
434
|
+
"fact:length_m": 60
|
|
381
435
|
},
|
|
382
436
|
"expect": [
|
|
383
437
|
"27f"
|
|
384
438
|
]
|
|
385
439
|
},
|
|
440
|
+
{
|
|
441
|
+
"name": "mine clearance, at anchor (issue #14: Rule 30 lights imported, not Rule 23)",
|
|
442
|
+
"facts": {
|
|
443
|
+
"fact:propulsion": "propulsion:power",
|
|
444
|
+
"fact:activity": "activity:mine",
|
|
445
|
+
"fact:position": "position:anchored",
|
|
446
|
+
"fact:length_m": 60
|
|
447
|
+
},
|
|
448
|
+
"expect": [
|
|
449
|
+
"27f",
|
|
450
|
+
"30a",
|
|
451
|
+
"30c"
|
|
452
|
+
]
|
|
453
|
+
},
|
|
386
454
|
{
|
|
387
455
|
"name": "diving operations from a small vessel",
|
|
388
456
|
"facts": {
|
|
389
|
-
"propulsion": "power",
|
|
390
|
-
"activity": "diving",
|
|
391
|
-
"position": "underway",
|
|
392
|
-
"length_m": 9
|
|
457
|
+
"fact:propulsion": "propulsion:power",
|
|
458
|
+
"fact:activity": "activity:diving",
|
|
459
|
+
"fact:position": "position:underway",
|
|
460
|
+
"fact:length_m": 9
|
|
393
461
|
},
|
|
394
462
|
"expect": [
|
|
395
463
|
"27e"
|
|
@@ -398,11 +466,11 @@
|
|
|
398
466
|
{
|
|
399
467
|
"name": "air-cushion vessel in non-displacement mode",
|
|
400
468
|
"facts": {
|
|
401
|
-
"propulsion": "power",
|
|
402
|
-
"activity": "none",
|
|
403
|
-
"position": "underway",
|
|
404
|
-
"length_m": 25,
|
|
405
|
-
"non_displacement": true
|
|
469
|
+
"fact:propulsion": "propulsion:power",
|
|
470
|
+
"fact:activity": "activity:none",
|
|
471
|
+
"fact:position": "position:underway",
|
|
472
|
+
"fact:length_m": 25,
|
|
473
|
+
"fact:non_displacement": true
|
|
406
474
|
},
|
|
407
475
|
"expect": [
|
|
408
476
|
"23a1",
|
|
@@ -414,10 +482,10 @@
|
|
|
414
482
|
{
|
|
415
483
|
"name": "23d1 boundary: 11.9 m power vessel underway",
|
|
416
484
|
"facts": {
|
|
417
|
-
"propulsion": "power",
|
|
418
|
-
"activity": "none",
|
|
419
|
-
"position": "underway",
|
|
420
|
-
"length_m": 11.9
|
|
485
|
+
"fact:propulsion": "propulsion:power",
|
|
486
|
+
"fact:activity": "activity:none",
|
|
487
|
+
"fact:position": "position:underway",
|
|
488
|
+
"fact:length_m": 11.9
|
|
421
489
|
},
|
|
422
490
|
"expect": [
|
|
423
491
|
"23a1",
|
|
@@ -429,10 +497,10 @@
|
|
|
429
497
|
{
|
|
430
498
|
"name": "23d1 boundary: 12.0 m power vessel underway",
|
|
431
499
|
"facts": {
|
|
432
|
-
"propulsion": "power",
|
|
433
|
-
"activity": "none",
|
|
434
|
-
"position": "underway",
|
|
435
|
-
"length_m": 12.0
|
|
500
|
+
"fact:propulsion": "propulsion:power",
|
|
501
|
+
"fact:activity": "activity:none",
|
|
502
|
+
"fact:position": "position:underway",
|
|
503
|
+
"fact:length_m": 12.0
|
|
436
504
|
},
|
|
437
505
|
"expect": [
|
|
438
506
|
"23a1",
|
|
@@ -443,11 +511,11 @@
|
|
|
443
511
|
{
|
|
444
512
|
"name": "23d2 length boundary: 6.9 m power vessel, max speed 7 kn",
|
|
445
513
|
"facts": {
|
|
446
|
-
"propulsion": "power",
|
|
447
|
-
"activity": "none",
|
|
448
|
-
"position": "underway",
|
|
449
|
-
"length_m": 6.9,
|
|
450
|
-
"max_speed_kn": 7
|
|
514
|
+
"fact:propulsion": "propulsion:power",
|
|
515
|
+
"fact:activity": "activity:none",
|
|
516
|
+
"fact:position": "position:underway",
|
|
517
|
+
"fact:length_m": 6.9,
|
|
518
|
+
"fact:max_speed_kn": 7
|
|
451
519
|
},
|
|
452
520
|
"expect": [
|
|
453
521
|
"23a1",
|
|
@@ -460,11 +528,11 @@
|
|
|
460
528
|
{
|
|
461
529
|
"name": "23d2 length boundary: 7.0 m power vessel, max speed 7 kn",
|
|
462
530
|
"facts": {
|
|
463
|
-
"propulsion": "power",
|
|
464
|
-
"activity": "none",
|
|
465
|
-
"position": "underway",
|
|
466
|
-
"length_m": 7.0,
|
|
467
|
-
"max_speed_kn": 7
|
|
531
|
+
"fact:propulsion": "propulsion:power",
|
|
532
|
+
"fact:activity": "activity:none",
|
|
533
|
+
"fact:position": "position:underway",
|
|
534
|
+
"fact:length_m": 7.0,
|
|
535
|
+
"fact:max_speed_kn": 7
|
|
468
536
|
},
|
|
469
537
|
"expect": [
|
|
470
538
|
"23a1",
|
|
@@ -476,11 +544,11 @@
|
|
|
476
544
|
{
|
|
477
545
|
"name": "23d2 speed boundary: 6.9 m power vessel, max speed 7.0 kn",
|
|
478
546
|
"facts": {
|
|
479
|
-
"propulsion": "power",
|
|
480
|
-
"activity": "none",
|
|
481
|
-
"position": "underway",
|
|
482
|
-
"length_m": 6.9,
|
|
483
|
-
"max_speed_kn": 7.0
|
|
547
|
+
"fact:propulsion": "propulsion:power",
|
|
548
|
+
"fact:activity": "activity:none",
|
|
549
|
+
"fact:position": "position:underway",
|
|
550
|
+
"fact:length_m": 6.9,
|
|
551
|
+
"fact:max_speed_kn": 7.0
|
|
484
552
|
},
|
|
485
553
|
"expect": [
|
|
486
554
|
"23a1",
|
|
@@ -493,11 +561,11 @@
|
|
|
493
561
|
{
|
|
494
562
|
"name": "23d2 speed boundary: 6.9 m power vessel, max speed 7.1 kn",
|
|
495
563
|
"facts": {
|
|
496
|
-
"propulsion": "power",
|
|
497
|
-
"activity": "none",
|
|
498
|
-
"position": "underway",
|
|
499
|
-
"length_m": 6.9,
|
|
500
|
-
"max_speed_kn": 7.1
|
|
564
|
+
"fact:propulsion": "propulsion:power",
|
|
565
|
+
"fact:activity": "activity:none",
|
|
566
|
+
"fact:position": "position:underway",
|
|
567
|
+
"fact:length_m": 6.9,
|
|
568
|
+
"fact:max_speed_kn": 7.1
|
|
501
569
|
},
|
|
502
570
|
"expect": [
|
|
503
571
|
"23a1",
|
|
@@ -509,10 +577,10 @@
|
|
|
509
577
|
{
|
|
510
578
|
"name": "25b boundary: 19.9 m sailing vessel underway",
|
|
511
579
|
"facts": {
|
|
512
|
-
"propulsion": "sail",
|
|
513
|
-
"activity": "none",
|
|
514
|
-
"position": "underway",
|
|
515
|
-
"length_m": 19.9
|
|
580
|
+
"fact:propulsion": "propulsion:sail",
|
|
581
|
+
"fact:activity": "activity:none",
|
|
582
|
+
"fact:position": "position:underway",
|
|
583
|
+
"fact:length_m": 19.9
|
|
516
584
|
},
|
|
517
585
|
"expect": [
|
|
518
586
|
"25a",
|
|
@@ -523,10 +591,10 @@
|
|
|
523
591
|
{
|
|
524
592
|
"name": "25b boundary: 20.0 m sailing vessel underway",
|
|
525
593
|
"facts": {
|
|
526
|
-
"propulsion": "sail",
|
|
527
|
-
"activity": "none",
|
|
528
|
-
"position": "underway",
|
|
529
|
-
"length_m": 20.0
|
|
594
|
+
"fact:propulsion": "propulsion:sail",
|
|
595
|
+
"fact:activity": "activity:none",
|
|
596
|
+
"fact:position": "position:underway",
|
|
597
|
+
"fact:length_m": 20.0
|
|
530
598
|
},
|
|
531
599
|
"expect": [
|
|
532
600
|
"25a",
|
|
@@ -536,10 +604,10 @@
|
|
|
536
604
|
{
|
|
537
605
|
"name": "25d1 boundary: 6.9 m sailing vessel underway",
|
|
538
606
|
"facts": {
|
|
539
|
-
"propulsion": "sail",
|
|
540
|
-
"activity": "none",
|
|
541
|
-
"position": "underway",
|
|
542
|
-
"length_m": 6.9
|
|
607
|
+
"fact:propulsion": "propulsion:sail",
|
|
608
|
+
"fact:activity": "activity:none",
|
|
609
|
+
"fact:position": "position:underway",
|
|
610
|
+
"fact:length_m": 6.9
|
|
543
611
|
},
|
|
544
612
|
"expect": [
|
|
545
613
|
"25a",
|
|
@@ -551,10 +619,10 @@
|
|
|
551
619
|
{
|
|
552
620
|
"name": "25d1 boundary: 7.0 m sailing vessel underway",
|
|
553
621
|
"facts": {
|
|
554
|
-
"propulsion": "sail",
|
|
555
|
-
"activity": "none",
|
|
556
|
-
"position": "underway",
|
|
557
|
-
"length_m": 7.0
|
|
622
|
+
"fact:propulsion": "propulsion:sail",
|
|
623
|
+
"fact:activity": "activity:none",
|
|
624
|
+
"fact:position": "position:underway",
|
|
625
|
+
"fact:length_m": 7.0
|
|
558
626
|
},
|
|
559
627
|
"expect": [
|
|
560
628
|
"25a",
|
|
@@ -565,8 +633,8 @@
|
|
|
565
633
|
{
|
|
566
634
|
"name": "30b boundary: anchored, 49.9 m",
|
|
567
635
|
"facts": {
|
|
568
|
-
"position": "anchored",
|
|
569
|
-
"length_m": 49.9
|
|
636
|
+
"fact:position": "position:anchored",
|
|
637
|
+
"fact:length_m": 49.9
|
|
570
638
|
},
|
|
571
639
|
"expect": [
|
|
572
640
|
"30a",
|
|
@@ -577,8 +645,8 @@
|
|
|
577
645
|
{
|
|
578
646
|
"name": "30b boundary: anchored, 50.0 m",
|
|
579
647
|
"facts": {
|
|
580
|
-
"position": "anchored",
|
|
581
|
-
"length_m": 50.0
|
|
648
|
+
"fact:position": "position:anchored",
|
|
649
|
+
"fact:length_m": 50.0
|
|
582
650
|
},
|
|
583
651
|
"expect": [
|
|
584
652
|
"30a",
|
|
@@ -588,8 +656,8 @@
|
|
|
588
656
|
{
|
|
589
657
|
"name": "30d boundary: aground, 11.9 m",
|
|
590
658
|
"facts": {
|
|
591
|
-
"position": "aground",
|
|
592
|
-
"length_m": 11.9
|
|
659
|
+
"fact:position": "position:aground",
|
|
660
|
+
"fact:length_m": 11.9
|
|
593
661
|
},
|
|
594
662
|
"expect": [
|
|
595
663
|
"30d-anchor"
|
|
@@ -598,8 +666,8 @@
|
|
|
598
666
|
{
|
|
599
667
|
"name": "30d boundary: aground, 12.0 m",
|
|
600
668
|
"facts": {
|
|
601
|
-
"position": "aground",
|
|
602
|
-
"length_m": 12.0
|
|
669
|
+
"fact:position": "position:aground",
|
|
670
|
+
"fact:length_m": 12.0
|
|
603
671
|
},
|
|
604
672
|
"expect": [
|
|
605
673
|
"30d-anchor",
|
|
@@ -609,9 +677,9 @@
|
|
|
609
677
|
{
|
|
610
678
|
"name": "30e boundary: anchored, clear of channel, 6.9 m",
|
|
611
679
|
"facts": {
|
|
612
|
-
"position": "anchored",
|
|
613
|
-
"near_channel": false,
|
|
614
|
-
"length_m": 6.9
|
|
680
|
+
"fact:position": "position:anchored",
|
|
681
|
+
"fact:near_channel": false,
|
|
682
|
+
"fact:length_m": 6.9
|
|
615
683
|
},
|
|
616
684
|
"expect": [
|
|
617
685
|
"30a",
|
|
@@ -623,9 +691,9 @@
|
|
|
623
691
|
{
|
|
624
692
|
"name": "30e boundary: anchored, clear of channel, 7.0 m",
|
|
625
693
|
"facts": {
|
|
626
|
-
"position": "anchored",
|
|
627
|
-
"near_channel": false,
|
|
628
|
-
"length_m": 7.0
|
|
694
|
+
"fact:position": "position:anchored",
|
|
695
|
+
"fact:near_channel": false,
|
|
696
|
+
"fact:length_m": 7.0
|
|
629
697
|
},
|
|
630
698
|
"expect": [
|
|
631
699
|
"30a",
|
|
@@ -636,11 +704,11 @@
|
|
|
636
704
|
{
|
|
637
705
|
"name": "24a tow-length boundary: towing 200.0 m",
|
|
638
706
|
"facts": {
|
|
639
|
-
"propulsion": "power",
|
|
640
|
-
"activity": "towing",
|
|
641
|
-
"position": "underway",
|
|
642
|
-
"length_m": 20,
|
|
643
|
-
"tow_length_m": 200.0
|
|
707
|
+
"fact:propulsion": "propulsion:power",
|
|
708
|
+
"fact:activity": "activity:towing",
|
|
709
|
+
"fact:position": "position:underway",
|
|
710
|
+
"fact:length_m": 20,
|
|
711
|
+
"fact:tow_length_m": 200.0
|
|
644
712
|
},
|
|
645
713
|
"expect": [
|
|
646
714
|
"24a-m2",
|
|
@@ -650,11 +718,11 @@
|
|
|
650
718
|
{
|
|
651
719
|
"name": "24a tow-length boundary: towing 200.1 m",
|
|
652
720
|
"facts": {
|
|
653
|
-
"propulsion": "power",
|
|
654
|
-
"activity": "towing",
|
|
655
|
-
"position": "underway",
|
|
656
|
-
"length_m": 20,
|
|
657
|
-
"tow_length_m": 200.1
|
|
721
|
+
"fact:propulsion": "propulsion:power",
|
|
722
|
+
"fact:activity": "activity:towing",
|
|
723
|
+
"fact:position": "position:underway",
|
|
724
|
+
"fact:length_m": 20,
|
|
725
|
+
"fact:tow_length_m": 200.1
|
|
658
726
|
},
|
|
659
727
|
"expect": [
|
|
660
728
|
"24a-m3",
|
|
@@ -664,9 +732,9 @@
|
|
|
664
732
|
{
|
|
665
733
|
"name": "26c-gear boundary: fishing, gear extent 150.0 m",
|
|
666
734
|
"facts": {
|
|
667
|
-
"activity": "fishing",
|
|
668
|
-
"position": "underway",
|
|
669
|
-
"gear_extent_m": 150.0
|
|
735
|
+
"fact:activity": "activity:fishing",
|
|
736
|
+
"fact:position": "position:underway",
|
|
737
|
+
"fact:gear_extent_m": 150.0
|
|
670
738
|
},
|
|
671
739
|
"expect": [
|
|
672
740
|
"26c-id"
|
|
@@ -675,9 +743,9 @@
|
|
|
675
743
|
{
|
|
676
744
|
"name": "26c-gear boundary: fishing, gear extent 150.1 m",
|
|
677
745
|
"facts": {
|
|
678
|
-
"activity": "fishing",
|
|
679
|
-
"position": "underway",
|
|
680
|
-
"gear_extent_m": 150.1
|
|
746
|
+
"fact:activity": "activity:fishing",
|
|
747
|
+
"fact:position": "position:underway",
|
|
748
|
+
"fact:gear_extent_m": 150.1
|
|
681
749
|
},
|
|
682
750
|
"expect": [
|
|
683
751
|
"26c-gear",
|
|
@@ -687,12 +755,12 @@
|
|
|
687
755
|
{
|
|
688
756
|
"name": "wing-in-ground craft near the surface, 25 m",
|
|
689
757
|
"facts": {
|
|
690
|
-
"propulsion": "power",
|
|
691
|
-
"activity": "none",
|
|
692
|
-
"position": "underway",
|
|
693
|
-
"wig": true,
|
|
694
|
-
"wig_near_surface": true,
|
|
695
|
-
"length_m": 25
|
|
758
|
+
"fact:propulsion": "propulsion:power",
|
|
759
|
+
"fact:activity": "activity:none",
|
|
760
|
+
"fact:position": "position:underway",
|
|
761
|
+
"fact:wig": true,
|
|
762
|
+
"fact:wig_near_surface": true,
|
|
763
|
+
"fact:length_m": 25
|
|
696
764
|
},
|
|
697
765
|
"expect": [
|
|
698
766
|
"23a1",
|
|
@@ -704,12 +772,12 @@
|
|
|
704
772
|
{
|
|
705
773
|
"name": "wing-in-ground craft cruising, not near the surface, 25 m",
|
|
706
774
|
"facts": {
|
|
707
|
-
"propulsion": "power",
|
|
708
|
-
"activity": "none",
|
|
709
|
-
"position": "underway",
|
|
710
|
-
"wig": true,
|
|
711
|
-
"wig_near_surface": false,
|
|
712
|
-
"length_m": 25
|
|
775
|
+
"fact:propulsion": "propulsion:power",
|
|
776
|
+
"fact:activity": "activity:none",
|
|
777
|
+
"fact:position": "position:underway",
|
|
778
|
+
"fact:wig": true,
|
|
779
|
+
"fact:wig_near_surface": false,
|
|
780
|
+
"fact:length_m": 25
|
|
713
781
|
},
|
|
714
782
|
"expect": [
|
|
715
783
|
"23a1",
|
|
@@ -720,9 +788,9 @@
|
|
|
720
788
|
{
|
|
721
789
|
"name": "vessel or object being towed astern",
|
|
722
790
|
"facts": {
|
|
723
|
-
"activity": "being_towed",
|
|
724
|
-
"position": "underway",
|
|
725
|
-
"length_m": 15
|
|
791
|
+
"fact:activity": "activity:being_towed",
|
|
792
|
+
"fact:position": "position:underway",
|
|
793
|
+
"fact:length_m": 15
|
|
726
794
|
},
|
|
727
795
|
"expect": [
|
|
728
796
|
"24e"
|
|
@@ -731,15 +799,81 @@
|
|
|
731
799
|
{
|
|
732
800
|
"name": "fishing other than trawling, making way",
|
|
733
801
|
"facts": {
|
|
734
|
-
"activity": "fishing",
|
|
735
|
-
"position": "underway",
|
|
736
|
-
"making_way": true,
|
|
737
|
-
"length_m": 12
|
|
802
|
+
"fact:activity": "activity:fishing",
|
|
803
|
+
"fact:position": "position:underway",
|
|
804
|
+
"fact:making_way": true,
|
|
805
|
+
"fact:length_m": 12
|
|
738
806
|
},
|
|
739
807
|
"expect": [
|
|
740
808
|
"26c-id",
|
|
741
809
|
"26c-mw"
|
|
742
810
|
]
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
"name": "yacht 11.6 m moored alongside a quay",
|
|
814
|
+
"facts": {
|
|
815
|
+
"fact:propulsion": "propulsion:power",
|
|
816
|
+
"fact:activity": "activity:none",
|
|
817
|
+
"fact:position": "position:moored",
|
|
818
|
+
"fact:on_mooring_buoy": false,
|
|
819
|
+
"fact:length_m": 11.6
|
|
820
|
+
},
|
|
821
|
+
"expect": []
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
"name": "same yacht made fast to a mooring buoy, US Inland",
|
|
825
|
+
"jurisdiction": "us/inland",
|
|
826
|
+
"facts": {
|
|
827
|
+
"fact:propulsion": "propulsion:power",
|
|
828
|
+
"fact:activity": "activity:none",
|
|
829
|
+
"fact:position": "position:moored",
|
|
830
|
+
"fact:on_mooring_buoy": true,
|
|
831
|
+
"fact:length_m": 11.6
|
|
832
|
+
},
|
|
833
|
+
"expect": [
|
|
834
|
+
"30a-buoy",
|
|
835
|
+
"30b-buoy"
|
|
836
|
+
]
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
"name": "30b-buoy length boundary: on a mooring buoy at 49.9 m, US Inland",
|
|
840
|
+
"jurisdiction": "us/inland",
|
|
841
|
+
"facts": {
|
|
842
|
+
"fact:propulsion": "propulsion:power",
|
|
843
|
+
"fact:activity": "activity:none",
|
|
844
|
+
"fact:position": "position:moored",
|
|
845
|
+
"fact:on_mooring_buoy": true,
|
|
846
|
+
"fact:length_m": 49.9
|
|
847
|
+
},
|
|
848
|
+
"expect": [
|
|
849
|
+
"30a-buoy",
|
|
850
|
+
"30b-buoy"
|
|
851
|
+
]
|
|
852
|
+
},
|
|
853
|
+
{
|
|
854
|
+
"name": "30b-buoy length boundary: on a mooring buoy at 50.0 m, US Inland",
|
|
855
|
+
"jurisdiction": "us/inland",
|
|
856
|
+
"facts": {
|
|
857
|
+
"fact:propulsion": "propulsion:power",
|
|
858
|
+
"fact:activity": "activity:none",
|
|
859
|
+
"fact:position": "position:moored",
|
|
860
|
+
"fact:on_mooring_buoy": true,
|
|
861
|
+
"fact:length_m": 50.0
|
|
862
|
+
},
|
|
863
|
+
"expect": [
|
|
864
|
+
"30a-buoy"
|
|
865
|
+
]
|
|
866
|
+
},
|
|
867
|
+
{
|
|
868
|
+
"name": "same yacht made fast to a mooring buoy, International",
|
|
869
|
+
"facts": {
|
|
870
|
+
"fact:propulsion": "propulsion:power",
|
|
871
|
+
"fact:activity": "activity:none",
|
|
872
|
+
"fact:position": "position:moored",
|
|
873
|
+
"fact:on_mooring_buoy": true,
|
|
874
|
+
"fact:length_m": 11.6
|
|
875
|
+
},
|
|
876
|
+
"expect": []
|
|
743
877
|
}
|
|
744
878
|
]
|
|
745
879
|
}
|