colregs 0.1.0 → 0.2.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.
- package/LICENSE +194 -26
- package/PROVENANCE.md +46 -13
- package/README.md +324 -20
- package/data/applicability.json +1247 -236
- package/data/deprecated-identifiers.json +7 -0
- package/data/facts.json +549 -112
- package/data/geometry.json +34 -34
- package/data/images.json +52 -26
- package/data/lights.json +36 -36
- package/data/rules.json +887 -104
- package/docs/adr/0001-name-and-jurisdiction-model.md +194 -0
- package/docs/adr/0002-wig-gate-and-jurisdiction-field.md +77 -0
- 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/conventions.md +27 -0
- package/docs/gates.json +84 -0
- package/docs/identifiers.md +435 -0
- package/docs/requirements.md +1320 -0
- 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 +498 -138
- package/fixtures/situation-fixtures.json +3603 -0
- package/package.json +27 -5
- package/schema/applicability-fixtures.schema.json +47 -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
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"note": "Fact records and the applicability entry ids that apply to each, under the International rules at night. An implementation in any language that consumes data/applicability.json should reproduce these exactly, using the predicate semantics in README.md.",
|
|
3
|
-
"
|
|
3
|
+
"jurisdiction": "intl",
|
|
4
4
|
"cases": [
|
|
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,33 +168,36 @@
|
|
|
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
|
-
"30d"
|
|
177
|
+
"30d-anchor",
|
|
178
|
+
"30d-red"
|
|
178
179
|
]
|
|
179
180
|
},
|
|
180
181
|
{
|
|
181
|
-
"name": "aground, 10 m (30(f) relief)",
|
|
182
|
+
"name": "aground, 10 m (30(f) relief from the red lights only, not the anchor lights)",
|
|
182
183
|
"facts": {
|
|
183
|
-
"propulsion": "power",
|
|
184
|
-
"activity": "none",
|
|
185
|
-
"position": "aground",
|
|
186
|
-
"length_m": 10
|
|
184
|
+
"fact:propulsion": "propulsion:power",
|
|
185
|
+
"fact:activity": "activity:none",
|
|
186
|
+
"fact:position": "position:aground",
|
|
187
|
+
"fact:length_m": 10
|
|
187
188
|
},
|
|
188
|
-
"expect": [
|
|
189
|
+
"expect": [
|
|
190
|
+
"30d-anchor"
|
|
191
|
+
]
|
|
189
192
|
},
|
|
190
193
|
{
|
|
191
194
|
"name": "trawler 30 m making way",
|
|
192
195
|
"facts": {
|
|
193
|
-
"propulsion": "power",
|
|
194
|
-
"activity": "trawling",
|
|
195
|
-
"position": "underway",
|
|
196
|
-
"making_way": true,
|
|
197
|
-
"length_m": 30
|
|
196
|
+
"fact:propulsion": "propulsion:power",
|
|
197
|
+
"fact:activity": "activity:trawling",
|
|
198
|
+
"fact:position": "position:underway",
|
|
199
|
+
"fact:making_way": true,
|
|
200
|
+
"fact:length_m": 30
|
|
198
201
|
},
|
|
199
202
|
"expect": [
|
|
200
203
|
"26b-id",
|
|
@@ -205,11 +208,11 @@
|
|
|
205
208
|
{
|
|
206
209
|
"name": "trawler 30 m drifting",
|
|
207
210
|
"facts": {
|
|
208
|
-
"propulsion": "power",
|
|
209
|
-
"activity": "trawling",
|
|
210
|
-
"position": "underway",
|
|
211
|
-
"making_way": false,
|
|
212
|
-
"length_m": 30
|
|
211
|
+
"fact:propulsion": "propulsion:power",
|
|
212
|
+
"fact:activity": "activity:trawling",
|
|
213
|
+
"fact:position": "position:underway",
|
|
214
|
+
"fact:making_way": false,
|
|
215
|
+
"fact:length_m": 30
|
|
213
216
|
},
|
|
214
217
|
"expect": [
|
|
215
218
|
"26b-id",
|
|
@@ -219,12 +222,12 @@
|
|
|
219
222
|
{
|
|
220
223
|
"name": "fishing other than trawling, gear out 200 m, not making way",
|
|
221
224
|
"facts": {
|
|
222
|
-
"propulsion": "power",
|
|
223
|
-
"activity": "fishing",
|
|
224
|
-
"position": "underway",
|
|
225
|
-
"making_way": false,
|
|
226
|
-
"length_m": 12,
|
|
227
|
-
"gear_extent_m": 200
|
|
225
|
+
"fact:propulsion": "propulsion:power",
|
|
226
|
+
"fact:activity": "activity:fishing",
|
|
227
|
+
"fact:position": "position:underway",
|
|
228
|
+
"fact:making_way": false,
|
|
229
|
+
"fact:length_m": 12,
|
|
230
|
+
"fact:gear_extent_m": 200
|
|
228
231
|
},
|
|
229
232
|
"expect": [
|
|
230
233
|
"26c-id",
|
|
@@ -234,11 +237,11 @@
|
|
|
234
237
|
{
|
|
235
238
|
"name": "not under command, making way",
|
|
236
239
|
"facts": {
|
|
237
|
-
"propulsion": "power",
|
|
238
|
-
"activity": "nuc",
|
|
239
|
-
"position": "underway",
|
|
240
|
-
"making_way": true,
|
|
241
|
-
"length_m": 40
|
|
240
|
+
"fact:propulsion": "propulsion:power",
|
|
241
|
+
"fact:activity": "activity:nuc",
|
|
242
|
+
"fact:position": "position:underway",
|
|
243
|
+
"fact:making_way": true,
|
|
244
|
+
"fact:length_m": 40
|
|
242
245
|
},
|
|
243
246
|
"expect": [
|
|
244
247
|
"27a-id",
|
|
@@ -248,11 +251,11 @@
|
|
|
248
251
|
{
|
|
249
252
|
"name": "not under command, drifting",
|
|
250
253
|
"facts": {
|
|
251
|
-
"propulsion": "power",
|
|
252
|
-
"activity": "nuc",
|
|
253
|
-
"position": "underway",
|
|
254
|
-
"making_way": false,
|
|
255
|
-
"length_m": 40
|
|
254
|
+
"fact:propulsion": "propulsion:power",
|
|
255
|
+
"fact:activity": "activity:nuc",
|
|
256
|
+
"fact:position": "position:underway",
|
|
257
|
+
"fact:making_way": false,
|
|
258
|
+
"fact:length_m": 40
|
|
256
259
|
},
|
|
257
260
|
"expect": [
|
|
258
261
|
"27a-id"
|
|
@@ -261,10 +264,10 @@
|
|
|
261
264
|
{
|
|
262
265
|
"name": "restricted in ability to maneuver, at anchor",
|
|
263
266
|
"facts": {
|
|
264
|
-
"propulsion": "power",
|
|
265
|
-
"activity": "ram",
|
|
266
|
-
"position": "anchored",
|
|
267
|
-
"length_m": 60
|
|
267
|
+
"fact:propulsion": "propulsion:power",
|
|
268
|
+
"fact:activity": "activity:ram",
|
|
269
|
+
"fact:position": "position:anchored",
|
|
270
|
+
"fact:length_m": 60
|
|
268
271
|
},
|
|
269
272
|
"expect": [
|
|
270
273
|
"27b-id",
|
|
@@ -276,13 +279,13 @@
|
|
|
276
279
|
{
|
|
277
280
|
"name": "dredger, restricted, obstruction to port, making way",
|
|
278
281
|
"facts": {
|
|
279
|
-
"propulsion": "power",
|
|
280
|
-
"activity": "ram_underwater",
|
|
281
|
-
"position": "underway",
|
|
282
|
-
"making_way": true,
|
|
283
|
-
"length_m": 45,
|
|
284
|
-
"obstruction_exists": true,
|
|
285
|
-
"obstruction_side": "port"
|
|
282
|
+
"fact:propulsion": "propulsion:power",
|
|
283
|
+
"fact:activity": "activity:ram_underwater",
|
|
284
|
+
"fact:position": "position:underway",
|
|
285
|
+
"fact:making_way": true,
|
|
286
|
+
"fact:length_m": 45,
|
|
287
|
+
"fact:obstruction_exists": true,
|
|
288
|
+
"fact:obstruction_side": "obstruction_side:port"
|
|
286
289
|
},
|
|
287
290
|
"expect": [
|
|
288
291
|
"27b-id",
|
|
@@ -293,11 +296,11 @@
|
|
|
293
296
|
{
|
|
294
297
|
"name": "towing astern, tow 150 m",
|
|
295
298
|
"facts": {
|
|
296
|
-
"propulsion": "power",
|
|
297
|
-
"activity": "towing",
|
|
298
|
-
"position": "underway",
|
|
299
|
-
"length_m": 40,
|
|
300
|
-
"tow_length_m": 150
|
|
299
|
+
"fact:propulsion": "propulsion:power",
|
|
300
|
+
"fact:activity": "activity:towing",
|
|
301
|
+
"fact:position": "position:underway",
|
|
302
|
+
"fact:length_m": 40,
|
|
303
|
+
"fact:tow_length_m": 150
|
|
301
304
|
},
|
|
302
305
|
"expect": [
|
|
303
306
|
"24a-m2",
|
|
@@ -307,11 +310,11 @@
|
|
|
307
310
|
{
|
|
308
311
|
"name": "towing astern, tow 300 m",
|
|
309
312
|
"facts": {
|
|
310
|
-
"propulsion": "power",
|
|
311
|
-
"activity": "towing",
|
|
312
|
-
"position": "underway",
|
|
313
|
-
"length_m": 40,
|
|
314
|
-
"tow_length_m": 300
|
|
313
|
+
"fact:propulsion": "propulsion:power",
|
|
314
|
+
"fact:activity": "activity:towing",
|
|
315
|
+
"fact:position": "position:underway",
|
|
316
|
+
"fact:length_m": 40,
|
|
317
|
+
"fact:tow_length_m": 300
|
|
315
318
|
},
|
|
316
319
|
"expect": [
|
|
317
320
|
"24a-m3",
|
|
@@ -321,11 +324,11 @@
|
|
|
321
324
|
{
|
|
322
325
|
"name": "pushing ahead, composite unit",
|
|
323
326
|
"facts": {
|
|
324
|
-
"propulsion": "power",
|
|
325
|
-
"activity": "pushing",
|
|
326
|
-
"position": "underway",
|
|
327
|
-
"length_m": 30,
|
|
328
|
-
"composite_unit": true
|
|
327
|
+
"fact:propulsion": "propulsion:power",
|
|
328
|
+
"fact:activity": "activity:pushing",
|
|
329
|
+
"fact:position": "position:underway",
|
|
330
|
+
"fact:length_m": 30,
|
|
331
|
+
"fact:composite_unit": true
|
|
329
332
|
},
|
|
330
333
|
"expect": [
|
|
331
334
|
"24b"
|
|
@@ -334,11 +337,11 @@
|
|
|
334
337
|
{
|
|
335
338
|
"name": "pushing ahead, not a composite unit",
|
|
336
339
|
"facts": {
|
|
337
|
-
"propulsion": "power",
|
|
338
|
-
"activity": "pushing",
|
|
339
|
-
"position": "underway",
|
|
340
|
-
"length_m": 30,
|
|
341
|
-
"composite_unit": false
|
|
340
|
+
"fact:propulsion": "propulsion:power",
|
|
341
|
+
"fact:activity": "activity:pushing",
|
|
342
|
+
"fact:position": "position:underway",
|
|
343
|
+
"fact:length_m": 30,
|
|
344
|
+
"fact:composite_unit": false
|
|
342
345
|
},
|
|
343
346
|
"expect": [
|
|
344
347
|
"24c"
|
|
@@ -347,22 +350,35 @@
|
|
|
347
350
|
{
|
|
348
351
|
"name": "constrained by draft",
|
|
349
352
|
"facts": {
|
|
350
|
-
"propulsion": "power",
|
|
351
|
-
"activity": "cbd",
|
|
352
|
-
"position": "underway",
|
|
353
|
-
"length_m": 200
|
|
353
|
+
"fact:propulsion": "propulsion:power",
|
|
354
|
+
"fact:activity": "activity:cbd",
|
|
355
|
+
"fact:position": "position:underway",
|
|
356
|
+
"fact:length_m": 200
|
|
354
357
|
},
|
|
355
358
|
"expect": [
|
|
356
359
|
"28"
|
|
357
360
|
]
|
|
358
361
|
},
|
|
362
|
+
{
|
|
363
|
+
"name": "constrained by draft, at anchor (issue #14: Rule 28 is an underway-only signal, so Rule 30 alone)",
|
|
364
|
+
"facts": {
|
|
365
|
+
"fact:propulsion": "propulsion:power",
|
|
366
|
+
"fact:activity": "activity:cbd",
|
|
367
|
+
"fact:position": "position:anchored",
|
|
368
|
+
"fact:length_m": 200
|
|
369
|
+
},
|
|
370
|
+
"expect": [
|
|
371
|
+
"30a",
|
|
372
|
+
"30c"
|
|
373
|
+
]
|
|
374
|
+
},
|
|
359
375
|
{
|
|
360
376
|
"name": "on pilotage duty, underway",
|
|
361
377
|
"facts": {
|
|
362
|
-
"propulsion": "power",
|
|
363
|
-
"activity": "pilot",
|
|
364
|
-
"position": "underway",
|
|
365
|
-
"length_m": 20
|
|
378
|
+
"fact:propulsion": "propulsion:power",
|
|
379
|
+
"fact:activity": "activity:pilot",
|
|
380
|
+
"fact:position": "position:underway",
|
|
381
|
+
"fact:length_m": 20
|
|
366
382
|
},
|
|
367
383
|
"expect": [
|
|
368
384
|
"29a"
|
|
@@ -371,22 +387,36 @@
|
|
|
371
387
|
{
|
|
372
388
|
"name": "mine clearance, underway",
|
|
373
389
|
"facts": {
|
|
374
|
-
"propulsion": "power",
|
|
375
|
-
"activity": "mine",
|
|
376
|
-
"position": "underway",
|
|
377
|
-
"length_m": 60
|
|
390
|
+
"fact:propulsion": "propulsion:power",
|
|
391
|
+
"fact:activity": "activity:mine",
|
|
392
|
+
"fact:position": "position:underway",
|
|
393
|
+
"fact:length_m": 60
|
|
378
394
|
},
|
|
379
395
|
"expect": [
|
|
380
396
|
"27f"
|
|
381
397
|
]
|
|
382
398
|
},
|
|
399
|
+
{
|
|
400
|
+
"name": "mine clearance, at anchor (issue #14: Rule 30 lights imported, not Rule 23)",
|
|
401
|
+
"facts": {
|
|
402
|
+
"fact:propulsion": "propulsion:power",
|
|
403
|
+
"fact:activity": "activity:mine",
|
|
404
|
+
"fact:position": "position:anchored",
|
|
405
|
+
"fact:length_m": 60
|
|
406
|
+
},
|
|
407
|
+
"expect": [
|
|
408
|
+
"27f",
|
|
409
|
+
"30a",
|
|
410
|
+
"30c"
|
|
411
|
+
]
|
|
412
|
+
},
|
|
383
413
|
{
|
|
384
414
|
"name": "diving operations from a small vessel",
|
|
385
415
|
"facts": {
|
|
386
|
-
"propulsion": "power",
|
|
387
|
-
"activity": "diving",
|
|
388
|
-
"position": "underway",
|
|
389
|
-
"length_m": 9
|
|
416
|
+
"fact:propulsion": "propulsion:power",
|
|
417
|
+
"fact:activity": "activity:diving",
|
|
418
|
+
"fact:position": "position:underway",
|
|
419
|
+
"fact:length_m": 9
|
|
390
420
|
},
|
|
391
421
|
"expect": [
|
|
392
422
|
"27e"
|
|
@@ -395,11 +425,11 @@
|
|
|
395
425
|
{
|
|
396
426
|
"name": "air-cushion vessel in non-displacement mode",
|
|
397
427
|
"facts": {
|
|
398
|
-
"propulsion": "power",
|
|
399
|
-
"activity": "none",
|
|
400
|
-
"position": "underway",
|
|
401
|
-
"length_m": 25,
|
|
402
|
-
"non_displacement": true
|
|
428
|
+
"fact:propulsion": "propulsion:power",
|
|
429
|
+
"fact:activity": "activity:none",
|
|
430
|
+
"fact:position": "position:underway",
|
|
431
|
+
"fact:length_m": 25,
|
|
432
|
+
"fact:non_displacement": true
|
|
403
433
|
},
|
|
404
434
|
"expect": [
|
|
405
435
|
"23a1",
|
|
@@ -407,6 +437,336 @@
|
|
|
407
437
|
"23a34",
|
|
408
438
|
"23b"
|
|
409
439
|
]
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"name": "23d1 boundary: 11.9 m power vessel underway",
|
|
443
|
+
"facts": {
|
|
444
|
+
"fact:propulsion": "propulsion:power",
|
|
445
|
+
"fact:activity": "activity:none",
|
|
446
|
+
"fact:position": "position:underway",
|
|
447
|
+
"fact:length_m": 11.9
|
|
448
|
+
},
|
|
449
|
+
"expect": [
|
|
450
|
+
"23a1",
|
|
451
|
+
"23a2",
|
|
452
|
+
"23a34",
|
|
453
|
+
"23d1"
|
|
454
|
+
]
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"name": "23d1 boundary: 12.0 m power vessel underway",
|
|
458
|
+
"facts": {
|
|
459
|
+
"fact:propulsion": "propulsion:power",
|
|
460
|
+
"fact:activity": "activity:none",
|
|
461
|
+
"fact:position": "position:underway",
|
|
462
|
+
"fact:length_m": 12.0
|
|
463
|
+
},
|
|
464
|
+
"expect": [
|
|
465
|
+
"23a1",
|
|
466
|
+
"23a2",
|
|
467
|
+
"23a34"
|
|
468
|
+
]
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"name": "23d2 length boundary: 6.9 m power vessel, max speed 7 kn",
|
|
472
|
+
"facts": {
|
|
473
|
+
"fact:propulsion": "propulsion:power",
|
|
474
|
+
"fact:activity": "activity:none",
|
|
475
|
+
"fact:position": "position:underway",
|
|
476
|
+
"fact:length_m": 6.9,
|
|
477
|
+
"fact:max_speed_kn": 7
|
|
478
|
+
},
|
|
479
|
+
"expect": [
|
|
480
|
+
"23a1",
|
|
481
|
+
"23a2",
|
|
482
|
+
"23a34",
|
|
483
|
+
"23d1",
|
|
484
|
+
"23d2"
|
|
485
|
+
]
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"name": "23d2 length boundary: 7.0 m power vessel, max speed 7 kn",
|
|
489
|
+
"facts": {
|
|
490
|
+
"fact:propulsion": "propulsion:power",
|
|
491
|
+
"fact:activity": "activity:none",
|
|
492
|
+
"fact:position": "position:underway",
|
|
493
|
+
"fact:length_m": 7.0,
|
|
494
|
+
"fact:max_speed_kn": 7
|
|
495
|
+
},
|
|
496
|
+
"expect": [
|
|
497
|
+
"23a1",
|
|
498
|
+
"23a2",
|
|
499
|
+
"23a34",
|
|
500
|
+
"23d1"
|
|
501
|
+
]
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"name": "23d2 speed boundary: 6.9 m power vessel, max speed 7.0 kn",
|
|
505
|
+
"facts": {
|
|
506
|
+
"fact:propulsion": "propulsion:power",
|
|
507
|
+
"fact:activity": "activity:none",
|
|
508
|
+
"fact:position": "position:underway",
|
|
509
|
+
"fact:length_m": 6.9,
|
|
510
|
+
"fact:max_speed_kn": 7.0
|
|
511
|
+
},
|
|
512
|
+
"expect": [
|
|
513
|
+
"23a1",
|
|
514
|
+
"23a2",
|
|
515
|
+
"23a34",
|
|
516
|
+
"23d1",
|
|
517
|
+
"23d2"
|
|
518
|
+
]
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
"name": "23d2 speed boundary: 6.9 m power vessel, max speed 7.1 kn",
|
|
522
|
+
"facts": {
|
|
523
|
+
"fact:propulsion": "propulsion:power",
|
|
524
|
+
"fact:activity": "activity:none",
|
|
525
|
+
"fact:position": "position:underway",
|
|
526
|
+
"fact:length_m": 6.9,
|
|
527
|
+
"fact:max_speed_kn": 7.1
|
|
528
|
+
},
|
|
529
|
+
"expect": [
|
|
530
|
+
"23a1",
|
|
531
|
+
"23a2",
|
|
532
|
+
"23a34",
|
|
533
|
+
"23d1"
|
|
534
|
+
]
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"name": "25b boundary: 19.9 m sailing vessel underway",
|
|
538
|
+
"facts": {
|
|
539
|
+
"fact:propulsion": "propulsion:sail",
|
|
540
|
+
"fact:activity": "activity:none",
|
|
541
|
+
"fact:position": "position:underway",
|
|
542
|
+
"fact:length_m": 19.9
|
|
543
|
+
},
|
|
544
|
+
"expect": [
|
|
545
|
+
"25a",
|
|
546
|
+
"25b",
|
|
547
|
+
"25c"
|
|
548
|
+
]
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"name": "25b boundary: 20.0 m sailing vessel underway",
|
|
552
|
+
"facts": {
|
|
553
|
+
"fact:propulsion": "propulsion:sail",
|
|
554
|
+
"fact:activity": "activity:none",
|
|
555
|
+
"fact:position": "position:underway",
|
|
556
|
+
"fact:length_m": 20.0
|
|
557
|
+
},
|
|
558
|
+
"expect": [
|
|
559
|
+
"25a",
|
|
560
|
+
"25c"
|
|
561
|
+
]
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"name": "25d1 boundary: 6.9 m sailing vessel underway",
|
|
565
|
+
"facts": {
|
|
566
|
+
"fact:propulsion": "propulsion:sail",
|
|
567
|
+
"fact:activity": "activity:none",
|
|
568
|
+
"fact:position": "position:underway",
|
|
569
|
+
"fact:length_m": 6.9
|
|
570
|
+
},
|
|
571
|
+
"expect": [
|
|
572
|
+
"25a",
|
|
573
|
+
"25b",
|
|
574
|
+
"25c",
|
|
575
|
+
"25d1"
|
|
576
|
+
]
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"name": "25d1 boundary: 7.0 m sailing vessel underway",
|
|
580
|
+
"facts": {
|
|
581
|
+
"fact:propulsion": "propulsion:sail",
|
|
582
|
+
"fact:activity": "activity:none",
|
|
583
|
+
"fact:position": "position:underway",
|
|
584
|
+
"fact:length_m": 7.0
|
|
585
|
+
},
|
|
586
|
+
"expect": [
|
|
587
|
+
"25a",
|
|
588
|
+
"25b",
|
|
589
|
+
"25c"
|
|
590
|
+
]
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"name": "30b boundary: anchored, 49.9 m",
|
|
594
|
+
"facts": {
|
|
595
|
+
"fact:position": "position:anchored",
|
|
596
|
+
"fact:length_m": 49.9
|
|
597
|
+
},
|
|
598
|
+
"expect": [
|
|
599
|
+
"30a",
|
|
600
|
+
"30b",
|
|
601
|
+
"30c"
|
|
602
|
+
]
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"name": "30b boundary: anchored, 50.0 m",
|
|
606
|
+
"facts": {
|
|
607
|
+
"fact:position": "position:anchored",
|
|
608
|
+
"fact:length_m": 50.0
|
|
609
|
+
},
|
|
610
|
+
"expect": [
|
|
611
|
+
"30a",
|
|
612
|
+
"30c"
|
|
613
|
+
]
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
"name": "30d boundary: aground, 11.9 m",
|
|
617
|
+
"facts": {
|
|
618
|
+
"fact:position": "position:aground",
|
|
619
|
+
"fact:length_m": 11.9
|
|
620
|
+
},
|
|
621
|
+
"expect": [
|
|
622
|
+
"30d-anchor"
|
|
623
|
+
]
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
"name": "30d boundary: aground, 12.0 m",
|
|
627
|
+
"facts": {
|
|
628
|
+
"fact:position": "position:aground",
|
|
629
|
+
"fact:length_m": 12.0
|
|
630
|
+
},
|
|
631
|
+
"expect": [
|
|
632
|
+
"30d-anchor",
|
|
633
|
+
"30d-red"
|
|
634
|
+
]
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"name": "30e boundary: anchored, clear of channel, 6.9 m",
|
|
638
|
+
"facts": {
|
|
639
|
+
"fact:position": "position:anchored",
|
|
640
|
+
"fact:near_channel": false,
|
|
641
|
+
"fact:length_m": 6.9
|
|
642
|
+
},
|
|
643
|
+
"expect": [
|
|
644
|
+
"30a",
|
|
645
|
+
"30b",
|
|
646
|
+
"30c",
|
|
647
|
+
"30e"
|
|
648
|
+
]
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
"name": "30e boundary: anchored, clear of channel, 7.0 m",
|
|
652
|
+
"facts": {
|
|
653
|
+
"fact:position": "position:anchored",
|
|
654
|
+
"fact:near_channel": false,
|
|
655
|
+
"fact:length_m": 7.0
|
|
656
|
+
},
|
|
657
|
+
"expect": [
|
|
658
|
+
"30a",
|
|
659
|
+
"30b",
|
|
660
|
+
"30c"
|
|
661
|
+
]
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"name": "24a tow-length boundary: towing 200.0 m",
|
|
665
|
+
"facts": {
|
|
666
|
+
"fact:propulsion": "propulsion:power",
|
|
667
|
+
"fact:activity": "activity:towing",
|
|
668
|
+
"fact:position": "position:underway",
|
|
669
|
+
"fact:length_m": 20,
|
|
670
|
+
"fact:tow_length_m": 200.0
|
|
671
|
+
},
|
|
672
|
+
"expect": [
|
|
673
|
+
"24a-m2",
|
|
674
|
+
"24a-rest"
|
|
675
|
+
]
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"name": "24a tow-length boundary: towing 200.1 m",
|
|
679
|
+
"facts": {
|
|
680
|
+
"fact:propulsion": "propulsion:power",
|
|
681
|
+
"fact:activity": "activity:towing",
|
|
682
|
+
"fact:position": "position:underway",
|
|
683
|
+
"fact:length_m": 20,
|
|
684
|
+
"fact:tow_length_m": 200.1
|
|
685
|
+
},
|
|
686
|
+
"expect": [
|
|
687
|
+
"24a-m3",
|
|
688
|
+
"24a-rest"
|
|
689
|
+
]
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"name": "26c-gear boundary: fishing, gear extent 150.0 m",
|
|
693
|
+
"facts": {
|
|
694
|
+
"fact:activity": "activity:fishing",
|
|
695
|
+
"fact:position": "position:underway",
|
|
696
|
+
"fact:gear_extent_m": 150.0
|
|
697
|
+
},
|
|
698
|
+
"expect": [
|
|
699
|
+
"26c-id"
|
|
700
|
+
]
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"name": "26c-gear boundary: fishing, gear extent 150.1 m",
|
|
704
|
+
"facts": {
|
|
705
|
+
"fact:activity": "activity:fishing",
|
|
706
|
+
"fact:position": "position:underway",
|
|
707
|
+
"fact:gear_extent_m": 150.1
|
|
708
|
+
},
|
|
709
|
+
"expect": [
|
|
710
|
+
"26c-gear",
|
|
711
|
+
"26c-id"
|
|
712
|
+
]
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"name": "wing-in-ground craft near the surface, 25 m",
|
|
716
|
+
"facts": {
|
|
717
|
+
"fact:propulsion": "propulsion:power",
|
|
718
|
+
"fact:activity": "activity:none",
|
|
719
|
+
"fact:position": "position:underway",
|
|
720
|
+
"fact:wig": true,
|
|
721
|
+
"fact:wig_near_surface": true,
|
|
722
|
+
"fact:length_m": 25
|
|
723
|
+
},
|
|
724
|
+
"expect": [
|
|
725
|
+
"23a1",
|
|
726
|
+
"23a2",
|
|
727
|
+
"23a34",
|
|
728
|
+
"23c"
|
|
729
|
+
]
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"name": "wing-in-ground craft cruising, not near the surface, 25 m",
|
|
733
|
+
"facts": {
|
|
734
|
+
"fact:propulsion": "propulsion:power",
|
|
735
|
+
"fact:activity": "activity:none",
|
|
736
|
+
"fact:position": "position:underway",
|
|
737
|
+
"fact:wig": true,
|
|
738
|
+
"fact:wig_near_surface": false,
|
|
739
|
+
"fact:length_m": 25
|
|
740
|
+
},
|
|
741
|
+
"expect": [
|
|
742
|
+
"23a1",
|
|
743
|
+
"23a2",
|
|
744
|
+
"23a34"
|
|
745
|
+
]
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"name": "vessel or object being towed astern",
|
|
749
|
+
"facts": {
|
|
750
|
+
"fact:activity": "activity:being_towed",
|
|
751
|
+
"fact:position": "position:underway",
|
|
752
|
+
"fact:length_m": 15
|
|
753
|
+
},
|
|
754
|
+
"expect": [
|
|
755
|
+
"24e"
|
|
756
|
+
]
|
|
757
|
+
},
|
|
758
|
+
{
|
|
759
|
+
"name": "fishing other than trawling, making way",
|
|
760
|
+
"facts": {
|
|
761
|
+
"fact:activity": "activity:fishing",
|
|
762
|
+
"fact:position": "position:underway",
|
|
763
|
+
"fact:making_way": true,
|
|
764
|
+
"fact:length_m": 12
|
|
765
|
+
},
|
|
766
|
+
"expect": [
|
|
767
|
+
"26c-id",
|
|
768
|
+
"26c-mw"
|
|
769
|
+
]
|
|
410
770
|
}
|
|
411
771
|
]
|
|
412
772
|
}
|