@pepys/schema 0.0.0-stage → 0.0.1

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.
@@ -0,0 +1,3386 @@
1
+ {
2
+ "cases": [
3
+ {
4
+ "title": "accepts the stub deployment",
5
+ "file": {
6
+ "kit": 1,
7
+ "deployment": "stub",
8
+ "consumers": [
9
+ {
10
+ "name": "github_pull_request",
11
+ "module": "a25e6b685249d115d765f543ff3ed84fea7b8a52dfff3fa04a23a7bdf4897b02",
12
+ "path": "github_pull_request/a25e6b685249d115d765f543ff3ed84fea7b8a52dfff3fa04a23a7bdf4897b02.wasm",
13
+ "pins": {},
14
+ "version": "8ccc9611c23dc9a1aa81ef14ad89d259672c713f92d498fcfec75900451cd291",
15
+ "manifest": {
16
+ "name": "github_pull_request",
17
+ "input": {
18
+ "mode": "fact",
19
+ "streams": ["facts.github.pull_request"]
20
+ },
21
+ "exports": {
22
+ "init": "github_pull_request_init",
23
+ "apply": "github_pull_request_apply_fact"
24
+ },
25
+ "imports": [
26
+ {
27
+ "kind": "row",
28
+ "table": "github_pull_request",
29
+ "length": "readGithubPullRequestLength",
30
+ "into": "readGithubPullRequestInto"
31
+ }
32
+ ],
33
+ "tables": {
34
+ "github_pull_request": {
35
+ "columns": {
36
+ "id": {
37
+ "kind": "entityID",
38
+ "nullable": false
39
+ },
40
+ "number": {
41
+ "kind": "integer",
42
+ "nullable": false
43
+ },
44
+ "repository_id": {
45
+ "kind": "entityID",
46
+ "nullable": false
47
+ },
48
+ "title": {
49
+ "kind": "text",
50
+ "nullable": false
51
+ },
52
+ "state": {
53
+ "kind": "text",
54
+ "nullable": false
55
+ },
56
+ "is_draft": {
57
+ "kind": "boolean",
58
+ "nullable": false
59
+ },
60
+ "is_merged": {
61
+ "kind": "boolean",
62
+ "nullable": false
63
+ },
64
+ "author_id": {
65
+ "kind": "entityID",
66
+ "nullable": true
67
+ },
68
+ "url": {
69
+ "kind": "text",
70
+ "nullable": false
71
+ },
72
+ "merge_commit_sha": {
73
+ "kind": "text",
74
+ "nullable": true
75
+ },
76
+ "created_at": {
77
+ "kind": "timestamp",
78
+ "nullable": false
79
+ },
80
+ "updated_at": {
81
+ "kind": "timestamp",
82
+ "nullable": false
83
+ },
84
+ "closed_at": {
85
+ "kind": "timestamp",
86
+ "nullable": true
87
+ },
88
+ "merged_at": {
89
+ "kind": "timestamp",
90
+ "nullable": true
91
+ },
92
+ "payload": {
93
+ "kind": "json",
94
+ "nullable": false
95
+ }
96
+ },
97
+ "primaryKey": ["id"],
98
+ "indexes": [["repository_id"]]
99
+ }
100
+ },
101
+ "links": [],
102
+ "schema": "CREATE TABLE \"github_pull_request\" (\n \"id\" TEXT NOT NULL,\n \"number\" INTEGER NOT NULL,\n \"repository_id\" TEXT NOT NULL,\n \"title\" TEXT NOT NULL,\n \"state\" TEXT NOT NULL,\n \"is_draft\" INTEGER NOT NULL,\n \"is_merged\" INTEGER NOT NULL,\n \"author_id\" TEXT,\n \"url\" TEXT NOT NULL,\n \"merge_commit_sha\" TEXT,\n \"created_at\" TEXT NOT NULL,\n \"updated_at\" TEXT NOT NULL,\n \"closed_at\" TEXT,\n \"merged_at\" TEXT,\n \"payload\" TEXT NOT NULL,\n PRIMARY KEY (\"id\")\n);\n\nCREATE INDEX \"github_pull_request_repository_id_idx\" ON \"github_pull_request\" (\"repository_id\");\n\nCREATE VIEW \"entity\" AS\nSELECT\n \"id\" AS \"id\",\n 'github:pull_request' AS \"kind\",\n \"title\" AS \"title\",\n \"url\" AS \"url\",\n \"author_id\" AS \"actor\",\n \"updated_at\" AS \"updated_at\"\nFROM \"github_pull_request\";\n"
103
+ }
104
+ }
105
+ ]
106
+ },
107
+ "isValid": true
108
+ },
109
+ {
110
+ "title": "accepts a fact consumer with a row read",
111
+ "file": {
112
+ "kit": 1,
113
+ "deployment": "harbour",
114
+ "consumers": [
115
+ {
116
+ "name": "tide_log",
117
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
118
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
119
+ "pins": {},
120
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
121
+ "manifest": {
122
+ "name": "tide_log",
123
+ "input": {
124
+ "mode": "fact",
125
+ "streams": ["facts.harbour.tide"]
126
+ },
127
+ "exports": {
128
+ "init": "tide_log_init",
129
+ "apply": "tide_log_apply_fact"
130
+ },
131
+ "imports": [
132
+ {
133
+ "kind": "row",
134
+ "table": "tide_reading",
135
+ "length": "readTideReadingLength",
136
+ "into": "readTideReadingInto"
137
+ }
138
+ ],
139
+ "tables": {
140
+ "tide_reading": {
141
+ "columns": {
142
+ "id": {
143
+ "kind": "entityID",
144
+ "nullable": false
145
+ },
146
+ "height_cm": {
147
+ "kind": "integer",
148
+ "nullable": false
149
+ },
150
+ "note": {
151
+ "kind": "text",
152
+ "nullable": true
153
+ },
154
+ "read_at": {
155
+ "kind": "timestamp",
156
+ "nullable": false
157
+ }
158
+ },
159
+ "primaryKey": ["id"],
160
+ "indexes": [["read_at"]]
161
+ }
162
+ },
163
+ "links": [],
164
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
165
+ }
166
+ }
167
+ ]
168
+ },
169
+ "isValid": true
170
+ },
171
+ {
172
+ "title": "accepts a scope consumer with two link types",
173
+ "file": {
174
+ "kit": 1,
175
+ "deployment": "harbour",
176
+ "consumers": [
177
+ {
178
+ "name": "berth_plan",
179
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
180
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
181
+ "pins": {},
182
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
183
+ "manifest": {
184
+ "name": "berth_plan",
185
+ "input": {
186
+ "mode": "scope",
187
+ "scopeKind": "harbour:berth",
188
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
189
+ },
190
+ "exports": {
191
+ "init": "berth_plan_init",
192
+ "apply": "berth_plan_apply_scope"
193
+ },
194
+ "imports": [
195
+ {
196
+ "kind": "scope_facts",
197
+ "length": "readScopeFactsLength",
198
+ "into": "readScopeFactsInto"
199
+ }
200
+ ],
201
+ "tables": {
202
+ "berth_booking": {
203
+ "columns": {
204
+ "berth_id": {
205
+ "kind": "entityID",
206
+ "nullable": false
207
+ },
208
+ "ship_id": {
209
+ "kind": "entityID",
210
+ "nullable": false
211
+ },
212
+ "booked_at": {
213
+ "kind": "timestamp",
214
+ "nullable": false
215
+ },
216
+ "detail": {
217
+ "kind": "json",
218
+ "nullable": true
219
+ }
220
+ },
221
+ "primaryKey": ["berth_id", "ship_id"],
222
+ "indexes": [["ship_id"]]
223
+ }
224
+ },
225
+ "links": [
226
+ {
227
+ "name": "moored_at",
228
+ "from": ["harbour:ship"],
229
+ "to": ["harbour:berth"],
230
+ "hub": false
231
+ },
232
+ {
233
+ "name": "owned_by",
234
+ "from": ["harbour:ship"],
235
+ "to": ["harbour:owner"],
236
+ "hub": true
237
+ }
238
+ ],
239
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
240
+ }
241
+ }
242
+ ]
243
+ },
244
+ "isValid": true
245
+ },
246
+ {
247
+ "title": "accepts a fact consumer and a scope consumer in one file",
248
+ "file": {
249
+ "kit": 1,
250
+ "deployment": "harbour",
251
+ "consumers": [
252
+ {
253
+ "name": "tide_log",
254
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
255
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
256
+ "pins": {},
257
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
258
+ "manifest": {
259
+ "name": "tide_log",
260
+ "input": {
261
+ "mode": "fact",
262
+ "streams": ["facts.harbour.tide"]
263
+ },
264
+ "exports": {
265
+ "init": "tide_log_init",
266
+ "apply": "tide_log_apply_fact"
267
+ },
268
+ "imports": [
269
+ {
270
+ "kind": "row",
271
+ "table": "tide_reading",
272
+ "length": "readTideReadingLength",
273
+ "into": "readTideReadingInto"
274
+ }
275
+ ],
276
+ "tables": {
277
+ "tide_reading": {
278
+ "columns": {
279
+ "id": {
280
+ "kind": "entityID",
281
+ "nullable": false
282
+ },
283
+ "height_cm": {
284
+ "kind": "integer",
285
+ "nullable": false
286
+ },
287
+ "note": {
288
+ "kind": "text",
289
+ "nullable": true
290
+ },
291
+ "read_at": {
292
+ "kind": "timestamp",
293
+ "nullable": false
294
+ }
295
+ },
296
+ "primaryKey": ["id"],
297
+ "indexes": [["read_at"]]
298
+ }
299
+ },
300
+ "links": [],
301
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
302
+ }
303
+ },
304
+ {
305
+ "name": "berth_plan",
306
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
307
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
308
+ "pins": {},
309
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
310
+ "manifest": {
311
+ "name": "berth_plan",
312
+ "input": {
313
+ "mode": "scope",
314
+ "scopeKind": "harbour:berth",
315
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
316
+ },
317
+ "exports": {
318
+ "init": "berth_plan_init",
319
+ "apply": "berth_plan_apply_scope"
320
+ },
321
+ "imports": [
322
+ {
323
+ "kind": "scope_facts",
324
+ "length": "readScopeFactsLength",
325
+ "into": "readScopeFactsInto"
326
+ }
327
+ ],
328
+ "tables": {
329
+ "berth_booking": {
330
+ "columns": {
331
+ "berth_id": {
332
+ "kind": "entityID",
333
+ "nullable": false
334
+ },
335
+ "ship_id": {
336
+ "kind": "entityID",
337
+ "nullable": false
338
+ },
339
+ "booked_at": {
340
+ "kind": "timestamp",
341
+ "nullable": false
342
+ },
343
+ "detail": {
344
+ "kind": "json",
345
+ "nullable": true
346
+ }
347
+ },
348
+ "primaryKey": ["berth_id", "ship_id"],
349
+ "indexes": [["ship_id"]]
350
+ }
351
+ },
352
+ "links": [
353
+ {
354
+ "name": "moored_at",
355
+ "from": ["harbour:ship"],
356
+ "to": ["harbour:berth"],
357
+ "hub": false
358
+ },
359
+ {
360
+ "name": "owned_by",
361
+ "from": ["harbour:ship"],
362
+ "to": ["harbour:owner"],
363
+ "hub": true
364
+ }
365
+ ],
366
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
367
+ }
368
+ }
369
+ ]
370
+ },
371
+ "isValid": true
372
+ },
373
+ {
374
+ "title": "accepts a plug-in built alone, with no deployment",
375
+ "file": {
376
+ "kit": 1,
377
+ "deployment": null,
378
+ "consumers": [
379
+ {
380
+ "name": "tide_log",
381
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
382
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
383
+ "pins": {},
384
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
385
+ "manifest": {
386
+ "name": "tide_log",
387
+ "input": {
388
+ "mode": "fact",
389
+ "streams": ["facts.harbour.tide"]
390
+ },
391
+ "exports": {
392
+ "init": "tide_log_init",
393
+ "apply": "tide_log_apply_fact"
394
+ },
395
+ "imports": [
396
+ {
397
+ "kind": "row",
398
+ "table": "tide_reading",
399
+ "length": "readTideReadingLength",
400
+ "into": "readTideReadingInto"
401
+ }
402
+ ],
403
+ "tables": {
404
+ "tide_reading": {
405
+ "columns": {
406
+ "id": {
407
+ "kind": "entityID",
408
+ "nullable": false
409
+ },
410
+ "height_cm": {
411
+ "kind": "integer",
412
+ "nullable": false
413
+ },
414
+ "note": {
415
+ "kind": "text",
416
+ "nullable": true
417
+ },
418
+ "read_at": {
419
+ "kind": "timestamp",
420
+ "nullable": false
421
+ }
422
+ },
423
+ "primaryKey": ["id"],
424
+ "indexes": [["read_at"]]
425
+ }
426
+ },
427
+ "links": [],
428
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
429
+ }
430
+ }
431
+ ]
432
+ },
433
+ "isValid": true
434
+ },
435
+ {
436
+ "title": "accepts a file with no consumer",
437
+ "file": {
438
+ "kit": 1,
439
+ "deployment": "harbour",
440
+ "consumers": []
441
+ },
442
+ "isValid": true
443
+ },
444
+ {
445
+ "title": "accepts a fact consumer with no read",
446
+ "file": {
447
+ "kit": 1,
448
+ "deployment": "harbour",
449
+ "consumers": [
450
+ {
451
+ "name": "tide_log",
452
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
453
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
454
+ "pins": {},
455
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
456
+ "manifest": {
457
+ "name": "tide_log",
458
+ "input": {
459
+ "mode": "fact",
460
+ "streams": ["facts.harbour.tide"]
461
+ },
462
+ "exports": {
463
+ "init": "tide_log_init",
464
+ "apply": "tide_log_apply_fact"
465
+ },
466
+ "imports": [],
467
+ "tables": {
468
+ "tide_reading": {
469
+ "columns": {
470
+ "id": {
471
+ "kind": "entityID",
472
+ "nullable": false
473
+ },
474
+ "height_cm": {
475
+ "kind": "integer",
476
+ "nullable": false
477
+ },
478
+ "note": {
479
+ "kind": "text",
480
+ "nullable": true
481
+ },
482
+ "read_at": {
483
+ "kind": "timestamp",
484
+ "nullable": false
485
+ }
486
+ },
487
+ "primaryKey": ["id"],
488
+ "indexes": [["read_at"]]
489
+ }
490
+ },
491
+ "links": [],
492
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
493
+ }
494
+ }
495
+ ]
496
+ },
497
+ "isValid": true
498
+ },
499
+ {
500
+ "title": "refuses kit 2",
501
+ "file": {
502
+ "kit": 2,
503
+ "deployment": "harbour",
504
+ "consumers": [
505
+ {
506
+ "name": "tide_log",
507
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
508
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
509
+ "pins": {},
510
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
511
+ "manifest": {
512
+ "name": "tide_log",
513
+ "input": {
514
+ "mode": "fact",
515
+ "streams": ["facts.harbour.tide"]
516
+ },
517
+ "exports": {
518
+ "init": "tide_log_init",
519
+ "apply": "tide_log_apply_fact"
520
+ },
521
+ "imports": [
522
+ {
523
+ "kind": "row",
524
+ "table": "tide_reading",
525
+ "length": "readTideReadingLength",
526
+ "into": "readTideReadingInto"
527
+ }
528
+ ],
529
+ "tables": {
530
+ "tide_reading": {
531
+ "columns": {
532
+ "id": {
533
+ "kind": "entityID",
534
+ "nullable": false
535
+ },
536
+ "height_cm": {
537
+ "kind": "integer",
538
+ "nullable": false
539
+ },
540
+ "note": {
541
+ "kind": "text",
542
+ "nullable": true
543
+ },
544
+ "read_at": {
545
+ "kind": "timestamp",
546
+ "nullable": false
547
+ }
548
+ },
549
+ "primaryKey": ["id"],
550
+ "indexes": [["read_at"]]
551
+ }
552
+ },
553
+ "links": [],
554
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
555
+ }
556
+ }
557
+ ]
558
+ },
559
+ "isValid": false
560
+ },
561
+ {
562
+ "title": "refuses an unknown field at the top",
563
+ "file": {
564
+ "kit": 1,
565
+ "deployment": "harbour",
566
+ "consumers": [
567
+ {
568
+ "name": "tide_log",
569
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
570
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
571
+ "pins": {},
572
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
573
+ "manifest": {
574
+ "name": "tide_log",
575
+ "input": {
576
+ "mode": "fact",
577
+ "streams": ["facts.harbour.tide"]
578
+ },
579
+ "exports": {
580
+ "init": "tide_log_init",
581
+ "apply": "tide_log_apply_fact"
582
+ },
583
+ "imports": [
584
+ {
585
+ "kind": "row",
586
+ "table": "tide_reading",
587
+ "length": "readTideReadingLength",
588
+ "into": "readTideReadingInto"
589
+ }
590
+ ],
591
+ "tables": {
592
+ "tide_reading": {
593
+ "columns": {
594
+ "id": {
595
+ "kind": "entityID",
596
+ "nullable": false
597
+ },
598
+ "height_cm": {
599
+ "kind": "integer",
600
+ "nullable": false
601
+ },
602
+ "note": {
603
+ "kind": "text",
604
+ "nullable": true
605
+ },
606
+ "read_at": {
607
+ "kind": "timestamp",
608
+ "nullable": false
609
+ }
610
+ },
611
+ "primaryKey": ["id"],
612
+ "indexes": [["read_at"]]
613
+ }
614
+ },
615
+ "links": [],
616
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
617
+ }
618
+ }
619
+ ],
620
+ "linkTypes": []
621
+ },
622
+ "isValid": false
623
+ },
624
+ {
625
+ "title": "refuses an unknown field in an entry",
626
+ "file": {
627
+ "kit": 1,
628
+ "deployment": "harbour",
629
+ "consumers": [
630
+ {
631
+ "name": "tide_log",
632
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
633
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
634
+ "pins": {},
635
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
636
+ "manifest": {
637
+ "name": "tide_log",
638
+ "input": {
639
+ "mode": "fact",
640
+ "streams": ["facts.harbour.tide"]
641
+ },
642
+ "exports": {
643
+ "init": "tide_log_init",
644
+ "apply": "tide_log_apply_fact"
645
+ },
646
+ "imports": [
647
+ {
648
+ "kind": "row",
649
+ "table": "tide_reading",
650
+ "length": "readTideReadingLength",
651
+ "into": "readTideReadingInto"
652
+ }
653
+ ],
654
+ "tables": {
655
+ "tide_reading": {
656
+ "columns": {
657
+ "id": {
658
+ "kind": "entityID",
659
+ "nullable": false
660
+ },
661
+ "height_cm": {
662
+ "kind": "integer",
663
+ "nullable": false
664
+ },
665
+ "note": {
666
+ "kind": "text",
667
+ "nullable": true
668
+ },
669
+ "read_at": {
670
+ "kind": "timestamp",
671
+ "nullable": false
672
+ }
673
+ },
674
+ "primaryKey": ["id"],
675
+ "indexes": [["read_at"]]
676
+ }
677
+ },
678
+ "links": [],
679
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
680
+ },
681
+ "built": "2026-11-01"
682
+ }
683
+ ]
684
+ },
685
+ "isValid": false
686
+ },
687
+ {
688
+ "title": "refuses an unknown field in a manifest",
689
+ "file": {
690
+ "kit": 1,
691
+ "deployment": "harbour",
692
+ "consumers": [
693
+ {
694
+ "name": "tide_log",
695
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
696
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
697
+ "pins": {},
698
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
699
+ "manifest": {
700
+ "name": "tide_log",
701
+ "input": {
702
+ "mode": "fact",
703
+ "streams": ["facts.harbour.tide"]
704
+ },
705
+ "exports": {
706
+ "init": "tide_log_init",
707
+ "apply": "tide_log_apply_fact"
708
+ },
709
+ "imports": [
710
+ {
711
+ "kind": "row",
712
+ "table": "tide_reading",
713
+ "length": "readTideReadingLength",
714
+ "into": "readTideReadingInto"
715
+ }
716
+ ],
717
+ "tables": {
718
+ "tide_reading": {
719
+ "columns": {
720
+ "id": {
721
+ "kind": "entityID",
722
+ "nullable": false
723
+ },
724
+ "height_cm": {
725
+ "kind": "integer",
726
+ "nullable": false
727
+ },
728
+ "note": {
729
+ "kind": "text",
730
+ "nullable": true
731
+ },
732
+ "read_at": {
733
+ "kind": "timestamp",
734
+ "nullable": false
735
+ }
736
+ },
737
+ "primaryKey": ["id"],
738
+ "indexes": [["read_at"]]
739
+ }
740
+ },
741
+ "links": [],
742
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n",
743
+ "reads": []
744
+ }
745
+ }
746
+ ]
747
+ },
748
+ "isValid": false
749
+ },
750
+ {
751
+ "title": "refuses an unknown field in a table",
752
+ "file": {
753
+ "kit": 1,
754
+ "deployment": "harbour",
755
+ "consumers": [
756
+ {
757
+ "name": "tide_log",
758
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
759
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
760
+ "pins": {},
761
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
762
+ "manifest": {
763
+ "name": "tide_log",
764
+ "input": {
765
+ "mode": "fact",
766
+ "streams": ["facts.harbour.tide"]
767
+ },
768
+ "exports": {
769
+ "init": "tide_log_init",
770
+ "apply": "tide_log_apply_fact"
771
+ },
772
+ "imports": [
773
+ {
774
+ "kind": "row",
775
+ "table": "tide_reading",
776
+ "length": "readTideReadingLength",
777
+ "into": "readTideReadingInto"
778
+ }
779
+ ],
780
+ "tables": {
781
+ "tide_reading": {
782
+ "columns": {
783
+ "id": {
784
+ "kind": "entityID",
785
+ "nullable": false
786
+ },
787
+ "height_cm": {
788
+ "kind": "integer",
789
+ "nullable": false
790
+ },
791
+ "note": {
792
+ "kind": "text",
793
+ "nullable": true
794
+ },
795
+ "read_at": {
796
+ "kind": "timestamp",
797
+ "nullable": false
798
+ }
799
+ },
800
+ "primaryKey": ["id"],
801
+ "indexes": [["read_at"]],
802
+ "unique": []
803
+ }
804
+ },
805
+ "links": [],
806
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
807
+ }
808
+ }
809
+ ]
810
+ },
811
+ "isValid": false
812
+ },
813
+ {
814
+ "title": "refuses an unknown field in a column",
815
+ "file": {
816
+ "kit": 1,
817
+ "deployment": "harbour",
818
+ "consumers": [
819
+ {
820
+ "name": "tide_log",
821
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
822
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
823
+ "pins": {},
824
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
825
+ "manifest": {
826
+ "name": "tide_log",
827
+ "input": {
828
+ "mode": "fact",
829
+ "streams": ["facts.harbour.tide"]
830
+ },
831
+ "exports": {
832
+ "init": "tide_log_init",
833
+ "apply": "tide_log_apply_fact"
834
+ },
835
+ "imports": [
836
+ {
837
+ "kind": "row",
838
+ "table": "tide_reading",
839
+ "length": "readTideReadingLength",
840
+ "into": "readTideReadingInto"
841
+ }
842
+ ],
843
+ "tables": {
844
+ "tide_reading": {
845
+ "columns": {
846
+ "id": {
847
+ "kind": "entityID",
848
+ "nullable": false
849
+ },
850
+ "height_cm": {
851
+ "kind": "integer",
852
+ "nullable": false
853
+ },
854
+ "note": {
855
+ "kind": "text",
856
+ "nullable": true,
857
+ "default": ""
858
+ },
859
+ "read_at": {
860
+ "kind": "timestamp",
861
+ "nullable": false
862
+ }
863
+ },
864
+ "primaryKey": ["id"],
865
+ "indexes": [["read_at"]]
866
+ }
867
+ },
868
+ "links": [],
869
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
870
+ }
871
+ }
872
+ ]
873
+ },
874
+ "isValid": false
875
+ },
876
+ {
877
+ "title": "refuses an unknown field in a read",
878
+ "file": {
879
+ "kit": 1,
880
+ "deployment": "harbour",
881
+ "consumers": [
882
+ {
883
+ "name": "tide_log",
884
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
885
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
886
+ "pins": {},
887
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
888
+ "manifest": {
889
+ "name": "tide_log",
890
+ "input": {
891
+ "mode": "fact",
892
+ "streams": ["facts.harbour.tide"]
893
+ },
894
+ "exports": {
895
+ "init": "tide_log_init",
896
+ "apply": "tide_log_apply_fact"
897
+ },
898
+ "imports": [
899
+ {
900
+ "kind": "row",
901
+ "table": "tide_reading",
902
+ "length": "readTideReadingLength",
903
+ "into": "readTideReadingInto",
904
+ "stream": "facts.harbour.tide"
905
+ }
906
+ ],
907
+ "tables": {
908
+ "tide_reading": {
909
+ "columns": {
910
+ "id": {
911
+ "kind": "entityID",
912
+ "nullable": false
913
+ },
914
+ "height_cm": {
915
+ "kind": "integer",
916
+ "nullable": false
917
+ },
918
+ "note": {
919
+ "kind": "text",
920
+ "nullable": true
921
+ },
922
+ "read_at": {
923
+ "kind": "timestamp",
924
+ "nullable": false
925
+ }
926
+ },
927
+ "primaryKey": ["id"],
928
+ "indexes": [["read_at"]]
929
+ }
930
+ },
931
+ "links": [],
932
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
933
+ }
934
+ }
935
+ ]
936
+ },
937
+ "isValid": false
938
+ },
939
+ {
940
+ "title": "refuses an unknown field in a link type",
941
+ "file": {
942
+ "kit": 1,
943
+ "deployment": "harbour",
944
+ "consumers": [
945
+ {
946
+ "name": "berth_plan",
947
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
948
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
949
+ "pins": {},
950
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
951
+ "manifest": {
952
+ "name": "berth_plan",
953
+ "input": {
954
+ "mode": "scope",
955
+ "scopeKind": "harbour:berth",
956
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
957
+ },
958
+ "exports": {
959
+ "init": "berth_plan_init",
960
+ "apply": "berth_plan_apply_scope"
961
+ },
962
+ "imports": [
963
+ {
964
+ "kind": "scope_facts",
965
+ "length": "readScopeFactsLength",
966
+ "into": "readScopeFactsInto"
967
+ }
968
+ ],
969
+ "tables": {
970
+ "berth_booking": {
971
+ "columns": {
972
+ "berth_id": {
973
+ "kind": "entityID",
974
+ "nullable": false
975
+ },
976
+ "ship_id": {
977
+ "kind": "entityID",
978
+ "nullable": false
979
+ },
980
+ "booked_at": {
981
+ "kind": "timestamp",
982
+ "nullable": false
983
+ },
984
+ "detail": {
985
+ "kind": "json",
986
+ "nullable": true
987
+ }
988
+ },
989
+ "primaryKey": ["berth_id", "ship_id"],
990
+ "indexes": [["ship_id"]]
991
+ }
992
+ },
993
+ "links": [
994
+ {
995
+ "name": "moored_at",
996
+ "from": ["harbour:ship"],
997
+ "to": ["harbour:berth"],
998
+ "hub": false,
999
+ "weight": 1
1000
+ },
1001
+ {
1002
+ "name": "owned_by",
1003
+ "from": ["harbour:ship"],
1004
+ "to": ["harbour:owner"],
1005
+ "hub": true
1006
+ }
1007
+ ],
1008
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
1009
+ }
1010
+ }
1011
+ ]
1012
+ },
1013
+ "isValid": false
1014
+ },
1015
+ {
1016
+ "title": "refuses an unknown field in the input",
1017
+ "file": {
1018
+ "kit": 1,
1019
+ "deployment": "harbour",
1020
+ "consumers": [
1021
+ {
1022
+ "name": "tide_log",
1023
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1024
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1025
+ "pins": {},
1026
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1027
+ "manifest": {
1028
+ "name": "tide_log",
1029
+ "input": {
1030
+ "mode": "fact",
1031
+ "streams": ["facts.harbour.tide"],
1032
+ "scopeKind": "harbour:berth"
1033
+ },
1034
+ "exports": {
1035
+ "init": "tide_log_init",
1036
+ "apply": "tide_log_apply_fact"
1037
+ },
1038
+ "imports": [
1039
+ {
1040
+ "kind": "row",
1041
+ "table": "tide_reading",
1042
+ "length": "readTideReadingLength",
1043
+ "into": "readTideReadingInto"
1044
+ }
1045
+ ],
1046
+ "tables": {
1047
+ "tide_reading": {
1048
+ "columns": {
1049
+ "id": {
1050
+ "kind": "entityID",
1051
+ "nullable": false
1052
+ },
1053
+ "height_cm": {
1054
+ "kind": "integer",
1055
+ "nullable": false
1056
+ },
1057
+ "note": {
1058
+ "kind": "text",
1059
+ "nullable": true
1060
+ },
1061
+ "read_at": {
1062
+ "kind": "timestamp",
1063
+ "nullable": false
1064
+ }
1065
+ },
1066
+ "primaryKey": ["id"],
1067
+ "indexes": [["read_at"]]
1068
+ }
1069
+ },
1070
+ "links": [],
1071
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1072
+ }
1073
+ }
1074
+ ]
1075
+ },
1076
+ "isValid": false
1077
+ },
1078
+ {
1079
+ "title": "refuses a missing schema",
1080
+ "file": {
1081
+ "kit": 1,
1082
+ "deployment": "harbour",
1083
+ "consumers": [
1084
+ {
1085
+ "name": "tide_log",
1086
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1087
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1088
+ "pins": {},
1089
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1090
+ "manifest": {
1091
+ "name": "tide_log",
1092
+ "input": {
1093
+ "mode": "fact",
1094
+ "streams": ["facts.harbour.tide"]
1095
+ },
1096
+ "exports": {
1097
+ "init": "tide_log_init",
1098
+ "apply": "tide_log_apply_fact"
1099
+ },
1100
+ "imports": [
1101
+ {
1102
+ "kind": "row",
1103
+ "table": "tide_reading",
1104
+ "length": "readTideReadingLength",
1105
+ "into": "readTideReadingInto"
1106
+ }
1107
+ ],
1108
+ "tables": {
1109
+ "tide_reading": {
1110
+ "columns": {
1111
+ "id": {
1112
+ "kind": "entityID",
1113
+ "nullable": false
1114
+ },
1115
+ "height_cm": {
1116
+ "kind": "integer",
1117
+ "nullable": false
1118
+ },
1119
+ "note": {
1120
+ "kind": "text",
1121
+ "nullable": true
1122
+ },
1123
+ "read_at": {
1124
+ "kind": "timestamp",
1125
+ "nullable": false
1126
+ }
1127
+ },
1128
+ "primaryKey": ["id"],
1129
+ "indexes": [["read_at"]]
1130
+ }
1131
+ },
1132
+ "links": []
1133
+ }
1134
+ }
1135
+ ]
1136
+ },
1137
+ "isValid": false
1138
+ },
1139
+ {
1140
+ "title": "refuses a missing deployment field",
1141
+ "file": {
1142
+ "kit": 1,
1143
+ "consumers": [
1144
+ {
1145
+ "name": "tide_log",
1146
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1147
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1148
+ "pins": {},
1149
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1150
+ "manifest": {
1151
+ "name": "tide_log",
1152
+ "input": {
1153
+ "mode": "fact",
1154
+ "streams": ["facts.harbour.tide"]
1155
+ },
1156
+ "exports": {
1157
+ "init": "tide_log_init",
1158
+ "apply": "tide_log_apply_fact"
1159
+ },
1160
+ "imports": [
1161
+ {
1162
+ "kind": "row",
1163
+ "table": "tide_reading",
1164
+ "length": "readTideReadingLength",
1165
+ "into": "readTideReadingInto"
1166
+ }
1167
+ ],
1168
+ "tables": {
1169
+ "tide_reading": {
1170
+ "columns": {
1171
+ "id": {
1172
+ "kind": "entityID",
1173
+ "nullable": false
1174
+ },
1175
+ "height_cm": {
1176
+ "kind": "integer",
1177
+ "nullable": false
1178
+ },
1179
+ "note": {
1180
+ "kind": "text",
1181
+ "nullable": true
1182
+ },
1183
+ "read_at": {
1184
+ "kind": "timestamp",
1185
+ "nullable": false
1186
+ }
1187
+ },
1188
+ "primaryKey": ["id"],
1189
+ "indexes": [["read_at"]]
1190
+ }
1191
+ },
1192
+ "links": [],
1193
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1194
+ }
1195
+ }
1196
+ ]
1197
+ },
1198
+ "isValid": false
1199
+ },
1200
+ {
1201
+ "title": "refuses an unknown input mode",
1202
+ "file": {
1203
+ "kit": 1,
1204
+ "deployment": "harbour",
1205
+ "consumers": [
1206
+ {
1207
+ "name": "tide_log",
1208
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1209
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1210
+ "pins": {},
1211
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1212
+ "manifest": {
1213
+ "name": "tide_log",
1214
+ "input": {
1215
+ "mode": "batch",
1216
+ "streams": ["facts.harbour.tide"]
1217
+ },
1218
+ "exports": {
1219
+ "init": "tide_log_init",
1220
+ "apply": "tide_log_apply_fact"
1221
+ },
1222
+ "imports": [
1223
+ {
1224
+ "kind": "row",
1225
+ "table": "tide_reading",
1226
+ "length": "readTideReadingLength",
1227
+ "into": "readTideReadingInto"
1228
+ }
1229
+ ],
1230
+ "tables": {
1231
+ "tide_reading": {
1232
+ "columns": {
1233
+ "id": {
1234
+ "kind": "entityID",
1235
+ "nullable": false
1236
+ },
1237
+ "height_cm": {
1238
+ "kind": "integer",
1239
+ "nullable": false
1240
+ },
1241
+ "note": {
1242
+ "kind": "text",
1243
+ "nullable": true
1244
+ },
1245
+ "read_at": {
1246
+ "kind": "timestamp",
1247
+ "nullable": false
1248
+ }
1249
+ },
1250
+ "primaryKey": ["id"],
1251
+ "indexes": [["read_at"]]
1252
+ }
1253
+ },
1254
+ "links": [],
1255
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1256
+ }
1257
+ }
1258
+ ]
1259
+ },
1260
+ "isValid": false
1261
+ },
1262
+ {
1263
+ "title": "refuses an unknown column kind",
1264
+ "file": {
1265
+ "kit": 1,
1266
+ "deployment": "harbour",
1267
+ "consumers": [
1268
+ {
1269
+ "name": "tide_log",
1270
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1271
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1272
+ "pins": {},
1273
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1274
+ "manifest": {
1275
+ "name": "tide_log",
1276
+ "input": {
1277
+ "mode": "fact",
1278
+ "streams": ["facts.harbour.tide"]
1279
+ },
1280
+ "exports": {
1281
+ "init": "tide_log_init",
1282
+ "apply": "tide_log_apply_fact"
1283
+ },
1284
+ "imports": [
1285
+ {
1286
+ "kind": "row",
1287
+ "table": "tide_reading",
1288
+ "length": "readTideReadingLength",
1289
+ "into": "readTideReadingInto"
1290
+ }
1291
+ ],
1292
+ "tables": {
1293
+ "tide_reading": {
1294
+ "columns": {
1295
+ "id": {
1296
+ "kind": "entityID",
1297
+ "nullable": false
1298
+ },
1299
+ "height_cm": {
1300
+ "kind": "integer",
1301
+ "nullable": false
1302
+ },
1303
+ "note": {
1304
+ "kind": "blob",
1305
+ "nullable": true
1306
+ },
1307
+ "read_at": {
1308
+ "kind": "timestamp",
1309
+ "nullable": false
1310
+ }
1311
+ },
1312
+ "primaryKey": ["id"],
1313
+ "indexes": [["read_at"]]
1314
+ }
1315
+ },
1316
+ "links": [],
1317
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1318
+ }
1319
+ }
1320
+ ]
1321
+ },
1322
+ "isValid": false
1323
+ },
1324
+ {
1325
+ "title": "refuses an unknown read kind",
1326
+ "file": {
1327
+ "kit": 1,
1328
+ "deployment": "harbour",
1329
+ "consumers": [
1330
+ {
1331
+ "name": "tide_log",
1332
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1333
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1334
+ "pins": {},
1335
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1336
+ "manifest": {
1337
+ "name": "tide_log",
1338
+ "input": {
1339
+ "mode": "fact",
1340
+ "streams": ["facts.harbour.tide"]
1341
+ },
1342
+ "exports": {
1343
+ "init": "tide_log_init",
1344
+ "apply": "tide_log_apply_fact"
1345
+ },
1346
+ "imports": [
1347
+ {
1348
+ "kind": "scan",
1349
+ "table": "tide_reading",
1350
+ "length": "readTideReadingLength",
1351
+ "into": "readTideReadingInto"
1352
+ }
1353
+ ],
1354
+ "tables": {
1355
+ "tide_reading": {
1356
+ "columns": {
1357
+ "id": {
1358
+ "kind": "entityID",
1359
+ "nullable": false
1360
+ },
1361
+ "height_cm": {
1362
+ "kind": "integer",
1363
+ "nullable": false
1364
+ },
1365
+ "note": {
1366
+ "kind": "text",
1367
+ "nullable": true
1368
+ },
1369
+ "read_at": {
1370
+ "kind": "timestamp",
1371
+ "nullable": false
1372
+ }
1373
+ },
1374
+ "primaryKey": ["id"],
1375
+ "indexes": [["read_at"]]
1376
+ }
1377
+ },
1378
+ "links": [],
1379
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1380
+ }
1381
+ }
1382
+ ]
1383
+ },
1384
+ "isValid": false
1385
+ },
1386
+ {
1387
+ "title": "refuses an empty stream list",
1388
+ "file": {
1389
+ "kit": 1,
1390
+ "deployment": "harbour",
1391
+ "consumers": [
1392
+ {
1393
+ "name": "tide_log",
1394
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1395
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1396
+ "pins": {},
1397
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1398
+ "manifest": {
1399
+ "name": "tide_log",
1400
+ "input": {
1401
+ "mode": "fact",
1402
+ "streams": []
1403
+ },
1404
+ "exports": {
1405
+ "init": "tide_log_init",
1406
+ "apply": "tide_log_apply_fact"
1407
+ },
1408
+ "imports": [
1409
+ {
1410
+ "kind": "row",
1411
+ "table": "tide_reading",
1412
+ "length": "readTideReadingLength",
1413
+ "into": "readTideReadingInto"
1414
+ }
1415
+ ],
1416
+ "tables": {
1417
+ "tide_reading": {
1418
+ "columns": {
1419
+ "id": {
1420
+ "kind": "entityID",
1421
+ "nullable": false
1422
+ },
1423
+ "height_cm": {
1424
+ "kind": "integer",
1425
+ "nullable": false
1426
+ },
1427
+ "note": {
1428
+ "kind": "text",
1429
+ "nullable": true
1430
+ },
1431
+ "read_at": {
1432
+ "kind": "timestamp",
1433
+ "nullable": false
1434
+ }
1435
+ },
1436
+ "primaryKey": ["id"],
1437
+ "indexes": [["read_at"]]
1438
+ }
1439
+ },
1440
+ "links": [],
1441
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1442
+ }
1443
+ }
1444
+ ]
1445
+ },
1446
+ "isValid": false
1447
+ },
1448
+ {
1449
+ "title": "refuses a stream name that is not a fact stream",
1450
+ "file": {
1451
+ "kit": 1,
1452
+ "deployment": "harbour",
1453
+ "consumers": [
1454
+ {
1455
+ "name": "tide_log",
1456
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1457
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1458
+ "pins": {},
1459
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1460
+ "manifest": {
1461
+ "name": "tide_log",
1462
+ "input": {
1463
+ "mode": "fact",
1464
+ "streams": ["harbour.tide"]
1465
+ },
1466
+ "exports": {
1467
+ "init": "tide_log_init",
1468
+ "apply": "tide_log_apply_fact"
1469
+ },
1470
+ "imports": [
1471
+ {
1472
+ "kind": "row",
1473
+ "table": "tide_reading",
1474
+ "length": "readTideReadingLength",
1475
+ "into": "readTideReadingInto"
1476
+ }
1477
+ ],
1478
+ "tables": {
1479
+ "tide_reading": {
1480
+ "columns": {
1481
+ "id": {
1482
+ "kind": "entityID",
1483
+ "nullable": false
1484
+ },
1485
+ "height_cm": {
1486
+ "kind": "integer",
1487
+ "nullable": false
1488
+ },
1489
+ "note": {
1490
+ "kind": "text",
1491
+ "nullable": true
1492
+ },
1493
+ "read_at": {
1494
+ "kind": "timestamp",
1495
+ "nullable": false
1496
+ }
1497
+ },
1498
+ "primaryKey": ["id"],
1499
+ "indexes": [["read_at"]]
1500
+ }
1501
+ },
1502
+ "links": [],
1503
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1504
+ }
1505
+ }
1506
+ ]
1507
+ },
1508
+ "isValid": false
1509
+ },
1510
+ {
1511
+ "title": "refuses a scope kind with no source",
1512
+ "file": {
1513
+ "kit": 1,
1514
+ "deployment": "harbour",
1515
+ "consumers": [
1516
+ {
1517
+ "name": "berth_plan",
1518
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
1519
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
1520
+ "pins": {},
1521
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
1522
+ "manifest": {
1523
+ "name": "berth_plan",
1524
+ "input": {
1525
+ "mode": "scope",
1526
+ "scopeKind": "berth",
1527
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
1528
+ },
1529
+ "exports": {
1530
+ "init": "berth_plan_init",
1531
+ "apply": "berth_plan_apply_scope"
1532
+ },
1533
+ "imports": [
1534
+ {
1535
+ "kind": "scope_facts",
1536
+ "length": "readScopeFactsLength",
1537
+ "into": "readScopeFactsInto"
1538
+ }
1539
+ ],
1540
+ "tables": {
1541
+ "berth_booking": {
1542
+ "columns": {
1543
+ "berth_id": {
1544
+ "kind": "entityID",
1545
+ "nullable": false
1546
+ },
1547
+ "ship_id": {
1548
+ "kind": "entityID",
1549
+ "nullable": false
1550
+ },
1551
+ "booked_at": {
1552
+ "kind": "timestamp",
1553
+ "nullable": false
1554
+ },
1555
+ "detail": {
1556
+ "kind": "json",
1557
+ "nullable": true
1558
+ }
1559
+ },
1560
+ "primaryKey": ["berth_id", "ship_id"],
1561
+ "indexes": [["ship_id"]]
1562
+ }
1563
+ },
1564
+ "links": [
1565
+ {
1566
+ "name": "moored_at",
1567
+ "from": ["harbour:ship"],
1568
+ "to": ["harbour:berth"],
1569
+ "hub": false
1570
+ },
1571
+ {
1572
+ "name": "owned_by",
1573
+ "from": ["harbour:ship"],
1574
+ "to": ["harbour:owner"],
1575
+ "hub": true
1576
+ }
1577
+ ],
1578
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
1579
+ }
1580
+ }
1581
+ ]
1582
+ },
1583
+ "isValid": false
1584
+ },
1585
+ {
1586
+ "title": "refuses a scope consumer with a row read",
1587
+ "file": {
1588
+ "kit": 1,
1589
+ "deployment": "harbour",
1590
+ "consumers": [
1591
+ {
1592
+ "name": "berth_plan",
1593
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
1594
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
1595
+ "pins": {},
1596
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
1597
+ "manifest": {
1598
+ "name": "berth_plan",
1599
+ "input": {
1600
+ "mode": "scope",
1601
+ "scopeKind": "harbour:berth",
1602
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
1603
+ },
1604
+ "exports": {
1605
+ "init": "berth_plan_init",
1606
+ "apply": "berth_plan_apply_scope"
1607
+ },
1608
+ "imports": [
1609
+ {
1610
+ "kind": "row",
1611
+ "table": "berth_booking",
1612
+ "length": "readBerthBookingLength",
1613
+ "into": "readBerthBookingInto"
1614
+ }
1615
+ ],
1616
+ "tables": {
1617
+ "berth_booking": {
1618
+ "columns": {
1619
+ "berth_id": {
1620
+ "kind": "entityID",
1621
+ "nullable": false
1622
+ },
1623
+ "ship_id": {
1624
+ "kind": "entityID",
1625
+ "nullable": false
1626
+ },
1627
+ "booked_at": {
1628
+ "kind": "timestamp",
1629
+ "nullable": false
1630
+ },
1631
+ "detail": {
1632
+ "kind": "json",
1633
+ "nullable": true
1634
+ }
1635
+ },
1636
+ "primaryKey": ["berth_id", "ship_id"],
1637
+ "indexes": [["ship_id"]]
1638
+ }
1639
+ },
1640
+ "links": [
1641
+ {
1642
+ "name": "moored_at",
1643
+ "from": ["harbour:ship"],
1644
+ "to": ["harbour:berth"],
1645
+ "hub": false
1646
+ },
1647
+ {
1648
+ "name": "owned_by",
1649
+ "from": ["harbour:ship"],
1650
+ "to": ["harbour:owner"],
1651
+ "hub": true
1652
+ }
1653
+ ],
1654
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
1655
+ }
1656
+ }
1657
+ ]
1658
+ },
1659
+ "isValid": false
1660
+ },
1661
+ {
1662
+ "title": "refuses a scope consumer with no read",
1663
+ "file": {
1664
+ "kit": 1,
1665
+ "deployment": "harbour",
1666
+ "consumers": [
1667
+ {
1668
+ "name": "berth_plan",
1669
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
1670
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
1671
+ "pins": {},
1672
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
1673
+ "manifest": {
1674
+ "name": "berth_plan",
1675
+ "input": {
1676
+ "mode": "scope",
1677
+ "scopeKind": "harbour:berth",
1678
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
1679
+ },
1680
+ "exports": {
1681
+ "init": "berth_plan_init",
1682
+ "apply": "berth_plan_apply_scope"
1683
+ },
1684
+ "imports": [],
1685
+ "tables": {
1686
+ "berth_booking": {
1687
+ "columns": {
1688
+ "berth_id": {
1689
+ "kind": "entityID",
1690
+ "nullable": false
1691
+ },
1692
+ "ship_id": {
1693
+ "kind": "entityID",
1694
+ "nullable": false
1695
+ },
1696
+ "booked_at": {
1697
+ "kind": "timestamp",
1698
+ "nullable": false
1699
+ },
1700
+ "detail": {
1701
+ "kind": "json",
1702
+ "nullable": true
1703
+ }
1704
+ },
1705
+ "primaryKey": ["berth_id", "ship_id"],
1706
+ "indexes": [["ship_id"]]
1707
+ }
1708
+ },
1709
+ "links": [
1710
+ {
1711
+ "name": "moored_at",
1712
+ "from": ["harbour:ship"],
1713
+ "to": ["harbour:berth"],
1714
+ "hub": false
1715
+ },
1716
+ {
1717
+ "name": "owned_by",
1718
+ "from": ["harbour:ship"],
1719
+ "to": ["harbour:owner"],
1720
+ "hub": true
1721
+ }
1722
+ ],
1723
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
1724
+ }
1725
+ }
1726
+ ]
1727
+ },
1728
+ "isValid": false
1729
+ },
1730
+ {
1731
+ "title": "refuses a scope consumer with two reads",
1732
+ "file": {
1733
+ "kit": 1,
1734
+ "deployment": "harbour",
1735
+ "consumers": [
1736
+ {
1737
+ "name": "berth_plan",
1738
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
1739
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
1740
+ "pins": {},
1741
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
1742
+ "manifest": {
1743
+ "name": "berth_plan",
1744
+ "input": {
1745
+ "mode": "scope",
1746
+ "scopeKind": "harbour:berth",
1747
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
1748
+ },
1749
+ "exports": {
1750
+ "init": "berth_plan_init",
1751
+ "apply": "berth_plan_apply_scope"
1752
+ },
1753
+ "imports": [
1754
+ {
1755
+ "kind": "scope_facts",
1756
+ "length": "readScopeFactsLength",
1757
+ "into": "readScopeFactsInto"
1758
+ },
1759
+ {
1760
+ "kind": "scope_facts",
1761
+ "length": "readOtherLength",
1762
+ "into": "readOtherInto"
1763
+ }
1764
+ ],
1765
+ "tables": {
1766
+ "berth_booking": {
1767
+ "columns": {
1768
+ "berth_id": {
1769
+ "kind": "entityID",
1770
+ "nullable": false
1771
+ },
1772
+ "ship_id": {
1773
+ "kind": "entityID",
1774
+ "nullable": false
1775
+ },
1776
+ "booked_at": {
1777
+ "kind": "timestamp",
1778
+ "nullable": false
1779
+ },
1780
+ "detail": {
1781
+ "kind": "json",
1782
+ "nullable": true
1783
+ }
1784
+ },
1785
+ "primaryKey": ["berth_id", "ship_id"],
1786
+ "indexes": [["ship_id"]]
1787
+ }
1788
+ },
1789
+ "links": [
1790
+ {
1791
+ "name": "moored_at",
1792
+ "from": ["harbour:ship"],
1793
+ "to": ["harbour:berth"],
1794
+ "hub": false
1795
+ },
1796
+ {
1797
+ "name": "owned_by",
1798
+ "from": ["harbour:ship"],
1799
+ "to": ["harbour:owner"],
1800
+ "hub": true
1801
+ }
1802
+ ],
1803
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
1804
+ }
1805
+ }
1806
+ ]
1807
+ },
1808
+ "isValid": false
1809
+ },
1810
+ {
1811
+ "title": "refuses a fact consumer with a scope read",
1812
+ "file": {
1813
+ "kit": 1,
1814
+ "deployment": "harbour",
1815
+ "consumers": [
1816
+ {
1817
+ "name": "tide_log",
1818
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1819
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1820
+ "pins": {},
1821
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1822
+ "manifest": {
1823
+ "name": "tide_log",
1824
+ "input": {
1825
+ "mode": "fact",
1826
+ "streams": ["facts.harbour.tide"]
1827
+ },
1828
+ "exports": {
1829
+ "init": "tide_log_init",
1830
+ "apply": "tide_log_apply_fact"
1831
+ },
1832
+ "imports": [
1833
+ {
1834
+ "kind": "scope_facts",
1835
+ "length": "readScopeFactsLength",
1836
+ "into": "readScopeFactsInto"
1837
+ }
1838
+ ],
1839
+ "tables": {
1840
+ "tide_reading": {
1841
+ "columns": {
1842
+ "id": {
1843
+ "kind": "entityID",
1844
+ "nullable": false
1845
+ },
1846
+ "height_cm": {
1847
+ "kind": "integer",
1848
+ "nullable": false
1849
+ },
1850
+ "note": {
1851
+ "kind": "text",
1852
+ "nullable": true
1853
+ },
1854
+ "read_at": {
1855
+ "kind": "timestamp",
1856
+ "nullable": false
1857
+ }
1858
+ },
1859
+ "primaryKey": ["id"],
1860
+ "indexes": [["read_at"]]
1861
+ }
1862
+ },
1863
+ "links": [],
1864
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1865
+ }
1866
+ }
1867
+ ]
1868
+ },
1869
+ "isValid": false
1870
+ },
1871
+ {
1872
+ "title": "refuses a row read of a table that the consumer does not own",
1873
+ "file": {
1874
+ "kit": 1,
1875
+ "deployment": "harbour",
1876
+ "consumers": [
1877
+ {
1878
+ "name": "tide_log",
1879
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1880
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1881
+ "pins": {},
1882
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1883
+ "manifest": {
1884
+ "name": "tide_log",
1885
+ "input": {
1886
+ "mode": "fact",
1887
+ "streams": ["facts.harbour.tide"]
1888
+ },
1889
+ "exports": {
1890
+ "init": "tide_log_init",
1891
+ "apply": "tide_log_apply_fact"
1892
+ },
1893
+ "imports": [
1894
+ {
1895
+ "kind": "row",
1896
+ "table": "berth_booking",
1897
+ "length": "readTideReadingLength",
1898
+ "into": "readTideReadingInto"
1899
+ }
1900
+ ],
1901
+ "tables": {
1902
+ "tide_reading": {
1903
+ "columns": {
1904
+ "id": {
1905
+ "kind": "entityID",
1906
+ "nullable": false
1907
+ },
1908
+ "height_cm": {
1909
+ "kind": "integer",
1910
+ "nullable": false
1911
+ },
1912
+ "note": {
1913
+ "kind": "text",
1914
+ "nullable": true
1915
+ },
1916
+ "read_at": {
1917
+ "kind": "timestamp",
1918
+ "nullable": false
1919
+ }
1920
+ },
1921
+ "primaryKey": ["id"],
1922
+ "indexes": [["read_at"]]
1923
+ }
1924
+ },
1925
+ "links": [],
1926
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1927
+ }
1928
+ }
1929
+ ]
1930
+ },
1931
+ "isValid": false
1932
+ },
1933
+ {
1934
+ "title": "refuses a consumer listed twice",
1935
+ "file": {
1936
+ "kit": 1,
1937
+ "deployment": "harbour",
1938
+ "consumers": [
1939
+ {
1940
+ "name": "tide_log",
1941
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1942
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1943
+ "pins": {},
1944
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1945
+ "manifest": {
1946
+ "name": "tide_log",
1947
+ "input": {
1948
+ "mode": "fact",
1949
+ "streams": ["facts.harbour.tide"]
1950
+ },
1951
+ "exports": {
1952
+ "init": "tide_log_init",
1953
+ "apply": "tide_log_apply_fact"
1954
+ },
1955
+ "imports": [
1956
+ {
1957
+ "kind": "row",
1958
+ "table": "tide_reading",
1959
+ "length": "readTideReadingLength",
1960
+ "into": "readTideReadingInto"
1961
+ }
1962
+ ],
1963
+ "tables": {
1964
+ "tide_reading": {
1965
+ "columns": {
1966
+ "id": {
1967
+ "kind": "entityID",
1968
+ "nullable": false
1969
+ },
1970
+ "height_cm": {
1971
+ "kind": "integer",
1972
+ "nullable": false
1973
+ },
1974
+ "note": {
1975
+ "kind": "text",
1976
+ "nullable": true
1977
+ },
1978
+ "read_at": {
1979
+ "kind": "timestamp",
1980
+ "nullable": false
1981
+ }
1982
+ },
1983
+ "primaryKey": ["id"],
1984
+ "indexes": [["read_at"]]
1985
+ }
1986
+ },
1987
+ "links": [],
1988
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
1989
+ }
1990
+ },
1991
+ {
1992
+ "name": "tide_log",
1993
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1994
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
1995
+ "pins": {},
1996
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1997
+ "manifest": {
1998
+ "name": "tide_log",
1999
+ "input": {
2000
+ "mode": "fact",
2001
+ "streams": ["facts.harbour.tide"]
2002
+ },
2003
+ "exports": {
2004
+ "init": "tide_log_init",
2005
+ "apply": "tide_log_apply_fact"
2006
+ },
2007
+ "imports": [
2008
+ {
2009
+ "kind": "row",
2010
+ "table": "tide_reading",
2011
+ "length": "readTideReadingLength",
2012
+ "into": "readTideReadingInto"
2013
+ }
2014
+ ],
2015
+ "tables": {
2016
+ "tide_reading": {
2017
+ "columns": {
2018
+ "id": {
2019
+ "kind": "entityID",
2020
+ "nullable": false
2021
+ },
2022
+ "height_cm": {
2023
+ "kind": "integer",
2024
+ "nullable": false
2025
+ },
2026
+ "note": {
2027
+ "kind": "text",
2028
+ "nullable": true
2029
+ },
2030
+ "read_at": {
2031
+ "kind": "timestamp",
2032
+ "nullable": false
2033
+ }
2034
+ },
2035
+ "primaryKey": ["id"],
2036
+ "indexes": [["read_at"]]
2037
+ }
2038
+ },
2039
+ "links": [],
2040
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2041
+ }
2042
+ }
2043
+ ]
2044
+ },
2045
+ "isValid": false
2046
+ },
2047
+ {
2048
+ "title": "refuses a table in two consumers",
2049
+ "file": {
2050
+ "kit": 1,
2051
+ "deployment": "harbour",
2052
+ "consumers": [
2053
+ {
2054
+ "name": "tide_log",
2055
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2056
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2057
+ "pins": {},
2058
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2059
+ "manifest": {
2060
+ "name": "tide_log",
2061
+ "input": {
2062
+ "mode": "fact",
2063
+ "streams": ["facts.harbour.tide"]
2064
+ },
2065
+ "exports": {
2066
+ "init": "tide_log_init",
2067
+ "apply": "tide_log_apply_fact"
2068
+ },
2069
+ "imports": [
2070
+ {
2071
+ "kind": "row",
2072
+ "table": "tide_reading",
2073
+ "length": "readTideReadingLength",
2074
+ "into": "readTideReadingInto"
2075
+ }
2076
+ ],
2077
+ "tables": {
2078
+ "tide_reading": {
2079
+ "columns": {
2080
+ "id": {
2081
+ "kind": "entityID",
2082
+ "nullable": false
2083
+ },
2084
+ "height_cm": {
2085
+ "kind": "integer",
2086
+ "nullable": false
2087
+ },
2088
+ "note": {
2089
+ "kind": "text",
2090
+ "nullable": true
2091
+ },
2092
+ "read_at": {
2093
+ "kind": "timestamp",
2094
+ "nullable": false
2095
+ }
2096
+ },
2097
+ "primaryKey": ["id"],
2098
+ "indexes": [["read_at"]]
2099
+ }
2100
+ },
2101
+ "links": [],
2102
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2103
+ }
2104
+ },
2105
+ {
2106
+ "name": "berth_plan",
2107
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
2108
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
2109
+ "pins": {},
2110
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
2111
+ "manifest": {
2112
+ "name": "berth_plan",
2113
+ "input": {
2114
+ "mode": "scope",
2115
+ "scopeKind": "harbour:berth",
2116
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
2117
+ },
2118
+ "exports": {
2119
+ "init": "berth_plan_init",
2120
+ "apply": "berth_plan_apply_scope"
2121
+ },
2122
+ "imports": [
2123
+ {
2124
+ "kind": "scope_facts",
2125
+ "length": "readScopeFactsLength",
2126
+ "into": "readScopeFactsInto"
2127
+ }
2128
+ ],
2129
+ "tables": {
2130
+ "tide_reading": {
2131
+ "columns": {
2132
+ "id": {
2133
+ "kind": "entityID",
2134
+ "nullable": false
2135
+ },
2136
+ "height_cm": {
2137
+ "kind": "integer",
2138
+ "nullable": false
2139
+ },
2140
+ "note": {
2141
+ "kind": "text",
2142
+ "nullable": true
2143
+ },
2144
+ "read_at": {
2145
+ "kind": "timestamp",
2146
+ "nullable": false
2147
+ }
2148
+ },
2149
+ "primaryKey": ["id"],
2150
+ "indexes": [["read_at"]]
2151
+ }
2152
+ },
2153
+ "links": [
2154
+ {
2155
+ "name": "moored_at",
2156
+ "from": ["harbour:ship"],
2157
+ "to": ["harbour:berth"],
2158
+ "hub": false
2159
+ },
2160
+ {
2161
+ "name": "owned_by",
2162
+ "from": ["harbour:ship"],
2163
+ "to": ["harbour:owner"],
2164
+ "hub": true
2165
+ }
2166
+ ],
2167
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
2168
+ }
2169
+ }
2170
+ ]
2171
+ },
2172
+ "isValid": false
2173
+ },
2174
+ {
2175
+ "title": "refuses a table named entity, which the host reserves",
2176
+ "file": {
2177
+ "kit": 1,
2178
+ "deployment": "harbour",
2179
+ "consumers": [
2180
+ {
2181
+ "name": "tide_log",
2182
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2183
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2184
+ "pins": {},
2185
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2186
+ "manifest": {
2187
+ "name": "tide_log",
2188
+ "input": {
2189
+ "mode": "fact",
2190
+ "streams": ["facts.harbour.tide"]
2191
+ },
2192
+ "exports": {
2193
+ "init": "tide_log_init",
2194
+ "apply": "tide_log_apply_fact"
2195
+ },
2196
+ "imports": [
2197
+ {
2198
+ "kind": "row",
2199
+ "table": "entity",
2200
+ "length": "readTideReadingLength",
2201
+ "into": "readTideReadingInto"
2202
+ }
2203
+ ],
2204
+ "tables": {
2205
+ "entity": {
2206
+ "columns": {
2207
+ "id": {
2208
+ "kind": "entityID",
2209
+ "nullable": false
2210
+ },
2211
+ "height_cm": {
2212
+ "kind": "integer",
2213
+ "nullable": false
2214
+ },
2215
+ "note": {
2216
+ "kind": "text",
2217
+ "nullable": true
2218
+ },
2219
+ "read_at": {
2220
+ "kind": "timestamp",
2221
+ "nullable": false
2222
+ }
2223
+ },
2224
+ "primaryKey": ["id"],
2225
+ "indexes": [["read_at"]]
2226
+ }
2227
+ },
2228
+ "links": [],
2229
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2230
+ }
2231
+ }
2232
+ ]
2233
+ },
2234
+ "isValid": false
2235
+ },
2236
+ {
2237
+ "title": "refuses a table named link, which the host reserves",
2238
+ "file": {
2239
+ "kit": 1,
2240
+ "deployment": "harbour",
2241
+ "consumers": [
2242
+ {
2243
+ "name": "tide_log",
2244
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2245
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2246
+ "pins": {},
2247
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2248
+ "manifest": {
2249
+ "name": "tide_log",
2250
+ "input": {
2251
+ "mode": "fact",
2252
+ "streams": ["facts.harbour.tide"]
2253
+ },
2254
+ "exports": {
2255
+ "init": "tide_log_init",
2256
+ "apply": "tide_log_apply_fact"
2257
+ },
2258
+ "imports": [
2259
+ {
2260
+ "kind": "row",
2261
+ "table": "link",
2262
+ "length": "readTideReadingLength",
2263
+ "into": "readTideReadingInto"
2264
+ }
2265
+ ],
2266
+ "tables": {
2267
+ "link": {
2268
+ "columns": {
2269
+ "id": {
2270
+ "kind": "entityID",
2271
+ "nullable": false
2272
+ },
2273
+ "height_cm": {
2274
+ "kind": "integer",
2275
+ "nullable": false
2276
+ },
2277
+ "note": {
2278
+ "kind": "text",
2279
+ "nullable": true
2280
+ },
2281
+ "read_at": {
2282
+ "kind": "timestamp",
2283
+ "nullable": false
2284
+ }
2285
+ },
2286
+ "primaryKey": ["id"],
2287
+ "indexes": [["read_at"]]
2288
+ }
2289
+ },
2290
+ "links": [],
2291
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2292
+ }
2293
+ }
2294
+ ]
2295
+ },
2296
+ "isValid": false
2297
+ },
2298
+ {
2299
+ "title": "refuses a link type declared twice",
2300
+ "file": {
2301
+ "kit": 1,
2302
+ "deployment": "harbour",
2303
+ "consumers": [
2304
+ {
2305
+ "name": "berth_plan",
2306
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
2307
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
2308
+ "pins": {},
2309
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
2310
+ "manifest": {
2311
+ "name": "berth_plan",
2312
+ "input": {
2313
+ "mode": "scope",
2314
+ "scopeKind": "harbour:berth",
2315
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
2316
+ },
2317
+ "exports": {
2318
+ "init": "berth_plan_init",
2319
+ "apply": "berth_plan_apply_scope"
2320
+ },
2321
+ "imports": [
2322
+ {
2323
+ "kind": "scope_facts",
2324
+ "length": "readScopeFactsLength",
2325
+ "into": "readScopeFactsInto"
2326
+ }
2327
+ ],
2328
+ "tables": {
2329
+ "berth_booking": {
2330
+ "columns": {
2331
+ "berth_id": {
2332
+ "kind": "entityID",
2333
+ "nullable": false
2334
+ },
2335
+ "ship_id": {
2336
+ "kind": "entityID",
2337
+ "nullable": false
2338
+ },
2339
+ "booked_at": {
2340
+ "kind": "timestamp",
2341
+ "nullable": false
2342
+ },
2343
+ "detail": {
2344
+ "kind": "json",
2345
+ "nullable": true
2346
+ }
2347
+ },
2348
+ "primaryKey": ["berth_id", "ship_id"],
2349
+ "indexes": [["ship_id"]]
2350
+ }
2351
+ },
2352
+ "links": [
2353
+ {
2354
+ "name": "moored_at",
2355
+ "from": ["harbour:ship"],
2356
+ "to": ["harbour:berth"],
2357
+ "hub": false
2358
+ },
2359
+ {
2360
+ "name": "owned_by",
2361
+ "from": ["harbour:ship"],
2362
+ "to": ["harbour:owner"],
2363
+ "hub": true
2364
+ },
2365
+ {
2366
+ "name": "moored_at",
2367
+ "from": ["harbour:ship"],
2368
+ "to": ["harbour:berth"],
2369
+ "hub": false
2370
+ }
2371
+ ],
2372
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
2373
+ }
2374
+ }
2375
+ ]
2376
+ },
2377
+ "isValid": false
2378
+ },
2379
+ {
2380
+ "title": "refuses a link type with no from kind",
2381
+ "file": {
2382
+ "kit": 1,
2383
+ "deployment": "harbour",
2384
+ "consumers": [
2385
+ {
2386
+ "name": "berth_plan",
2387
+ "module": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
2388
+ "path": "berth_plan/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.wasm",
2389
+ "pins": {},
2390
+ "version": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
2391
+ "manifest": {
2392
+ "name": "berth_plan",
2393
+ "input": {
2394
+ "mode": "scope",
2395
+ "scopeKind": "harbour:berth",
2396
+ "streams": ["facts.harbour.berth", "facts.harbour.ship"]
2397
+ },
2398
+ "exports": {
2399
+ "init": "berth_plan_init",
2400
+ "apply": "berth_plan_apply_scope"
2401
+ },
2402
+ "imports": [
2403
+ {
2404
+ "kind": "scope_facts",
2405
+ "length": "readScopeFactsLength",
2406
+ "into": "readScopeFactsInto"
2407
+ }
2408
+ ],
2409
+ "tables": {
2410
+ "berth_booking": {
2411
+ "columns": {
2412
+ "berth_id": {
2413
+ "kind": "entityID",
2414
+ "nullable": false
2415
+ },
2416
+ "ship_id": {
2417
+ "kind": "entityID",
2418
+ "nullable": false
2419
+ },
2420
+ "booked_at": {
2421
+ "kind": "timestamp",
2422
+ "nullable": false
2423
+ },
2424
+ "detail": {
2425
+ "kind": "json",
2426
+ "nullable": true
2427
+ }
2428
+ },
2429
+ "primaryKey": ["berth_id", "ship_id"],
2430
+ "indexes": [["ship_id"]]
2431
+ }
2432
+ },
2433
+ "links": [
2434
+ {
2435
+ "name": "moored_at",
2436
+ "from": [],
2437
+ "to": ["harbour:berth"],
2438
+ "hub": false
2439
+ },
2440
+ {
2441
+ "name": "owned_by",
2442
+ "from": ["harbour:ship"],
2443
+ "to": ["harbour:owner"],
2444
+ "hub": true
2445
+ }
2446
+ ],
2447
+ "schema": "CREATE TABLE \"berth_booking\" (\n \"berth_id\" TEXT NOT NULL\n);\n"
2448
+ }
2449
+ }
2450
+ ]
2451
+ },
2452
+ "isValid": false
2453
+ },
2454
+ {
2455
+ "title": "refuses an empty export symbol",
2456
+ "file": {
2457
+ "kit": 1,
2458
+ "deployment": "harbour",
2459
+ "consumers": [
2460
+ {
2461
+ "name": "tide_log",
2462
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2463
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2464
+ "pins": {},
2465
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2466
+ "manifest": {
2467
+ "name": "tide_log",
2468
+ "input": {
2469
+ "mode": "fact",
2470
+ "streams": ["facts.harbour.tide"]
2471
+ },
2472
+ "exports": {
2473
+ "init": "",
2474
+ "apply": "tide_log_apply_fact"
2475
+ },
2476
+ "imports": [
2477
+ {
2478
+ "kind": "row",
2479
+ "table": "tide_reading",
2480
+ "length": "readTideReadingLength",
2481
+ "into": "readTideReadingInto"
2482
+ }
2483
+ ],
2484
+ "tables": {
2485
+ "tide_reading": {
2486
+ "columns": {
2487
+ "id": {
2488
+ "kind": "entityID",
2489
+ "nullable": false
2490
+ },
2491
+ "height_cm": {
2492
+ "kind": "integer",
2493
+ "nullable": false
2494
+ },
2495
+ "note": {
2496
+ "kind": "text",
2497
+ "nullable": true
2498
+ },
2499
+ "read_at": {
2500
+ "kind": "timestamp",
2501
+ "nullable": false
2502
+ }
2503
+ },
2504
+ "primaryKey": ["id"],
2505
+ "indexes": [["read_at"]]
2506
+ }
2507
+ },
2508
+ "links": [],
2509
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2510
+ }
2511
+ }
2512
+ ]
2513
+ },
2514
+ "isValid": false
2515
+ },
2516
+ {
2517
+ "title": "refuses an export symbol used twice",
2518
+ "file": {
2519
+ "kit": 1,
2520
+ "deployment": "harbour",
2521
+ "consumers": [
2522
+ {
2523
+ "name": "tide_log",
2524
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2525
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2526
+ "pins": {},
2527
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2528
+ "manifest": {
2529
+ "name": "tide_log",
2530
+ "input": {
2531
+ "mode": "fact",
2532
+ "streams": ["facts.harbour.tide"]
2533
+ },
2534
+ "exports": {
2535
+ "init": "tide_log_init",
2536
+ "apply": "tide_log_init"
2537
+ },
2538
+ "imports": [
2539
+ {
2540
+ "kind": "row",
2541
+ "table": "tide_reading",
2542
+ "length": "readTideReadingLength",
2543
+ "into": "readTideReadingInto"
2544
+ }
2545
+ ],
2546
+ "tables": {
2547
+ "tide_reading": {
2548
+ "columns": {
2549
+ "id": {
2550
+ "kind": "entityID",
2551
+ "nullable": false
2552
+ },
2553
+ "height_cm": {
2554
+ "kind": "integer",
2555
+ "nullable": false
2556
+ },
2557
+ "note": {
2558
+ "kind": "text",
2559
+ "nullable": true
2560
+ },
2561
+ "read_at": {
2562
+ "kind": "timestamp",
2563
+ "nullable": false
2564
+ }
2565
+ },
2566
+ "primaryKey": ["id"],
2567
+ "indexes": [["read_at"]]
2568
+ }
2569
+ },
2570
+ "links": [],
2571
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2572
+ }
2573
+ }
2574
+ ]
2575
+ },
2576
+ "isValid": false
2577
+ },
2578
+ {
2579
+ "title": "refuses an import symbol used twice",
2580
+ "file": {
2581
+ "kit": 1,
2582
+ "deployment": "harbour",
2583
+ "consumers": [
2584
+ {
2585
+ "name": "tide_log",
2586
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2587
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2588
+ "pins": {},
2589
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2590
+ "manifest": {
2591
+ "name": "tide_log",
2592
+ "input": {
2593
+ "mode": "fact",
2594
+ "streams": ["facts.harbour.tide"]
2595
+ },
2596
+ "exports": {
2597
+ "init": "tide_log_init",
2598
+ "apply": "tide_log_apply_fact"
2599
+ },
2600
+ "imports": [
2601
+ {
2602
+ "kind": "row",
2603
+ "table": "tide_reading",
2604
+ "length": "readTideReadingLength",
2605
+ "into": "readTideReadingLength"
2606
+ }
2607
+ ],
2608
+ "tables": {
2609
+ "tide_reading": {
2610
+ "columns": {
2611
+ "id": {
2612
+ "kind": "entityID",
2613
+ "nullable": false
2614
+ },
2615
+ "height_cm": {
2616
+ "kind": "integer",
2617
+ "nullable": false
2618
+ },
2619
+ "note": {
2620
+ "kind": "text",
2621
+ "nullable": true
2622
+ },
2623
+ "read_at": {
2624
+ "kind": "timestamp",
2625
+ "nullable": false
2626
+ }
2627
+ },
2628
+ "primaryKey": ["id"],
2629
+ "indexes": [["read_at"]]
2630
+ }
2631
+ },
2632
+ "links": [],
2633
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2634
+ }
2635
+ }
2636
+ ]
2637
+ },
2638
+ "isValid": false
2639
+ },
2640
+ {
2641
+ "title": "refuses an empty primary key",
2642
+ "file": {
2643
+ "kit": 1,
2644
+ "deployment": "harbour",
2645
+ "consumers": [
2646
+ {
2647
+ "name": "tide_log",
2648
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2649
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2650
+ "pins": {},
2651
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2652
+ "manifest": {
2653
+ "name": "tide_log",
2654
+ "input": {
2655
+ "mode": "fact",
2656
+ "streams": ["facts.harbour.tide"]
2657
+ },
2658
+ "exports": {
2659
+ "init": "tide_log_init",
2660
+ "apply": "tide_log_apply_fact"
2661
+ },
2662
+ "imports": [
2663
+ {
2664
+ "kind": "row",
2665
+ "table": "tide_reading",
2666
+ "length": "readTideReadingLength",
2667
+ "into": "readTideReadingInto"
2668
+ }
2669
+ ],
2670
+ "tables": {
2671
+ "tide_reading": {
2672
+ "columns": {
2673
+ "id": {
2674
+ "kind": "entityID",
2675
+ "nullable": false
2676
+ },
2677
+ "height_cm": {
2678
+ "kind": "integer",
2679
+ "nullable": false
2680
+ },
2681
+ "note": {
2682
+ "kind": "text",
2683
+ "nullable": true
2684
+ },
2685
+ "read_at": {
2686
+ "kind": "timestamp",
2687
+ "nullable": false
2688
+ }
2689
+ },
2690
+ "primaryKey": [],
2691
+ "indexes": [["read_at"]]
2692
+ }
2693
+ },
2694
+ "links": [],
2695
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2696
+ }
2697
+ }
2698
+ ]
2699
+ },
2700
+ "isValid": false
2701
+ },
2702
+ {
2703
+ "title": "refuses a primary key column that the table lacks",
2704
+ "file": {
2705
+ "kit": 1,
2706
+ "deployment": "harbour",
2707
+ "consumers": [
2708
+ {
2709
+ "name": "tide_log",
2710
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2711
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2712
+ "pins": {},
2713
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2714
+ "manifest": {
2715
+ "name": "tide_log",
2716
+ "input": {
2717
+ "mode": "fact",
2718
+ "streams": ["facts.harbour.tide"]
2719
+ },
2720
+ "exports": {
2721
+ "init": "tide_log_init",
2722
+ "apply": "tide_log_apply_fact"
2723
+ },
2724
+ "imports": [
2725
+ {
2726
+ "kind": "row",
2727
+ "table": "tide_reading",
2728
+ "length": "readTideReadingLength",
2729
+ "into": "readTideReadingInto"
2730
+ }
2731
+ ],
2732
+ "tables": {
2733
+ "tide_reading": {
2734
+ "columns": {
2735
+ "id": {
2736
+ "kind": "entityID",
2737
+ "nullable": false
2738
+ },
2739
+ "height_cm": {
2740
+ "kind": "integer",
2741
+ "nullable": false
2742
+ },
2743
+ "note": {
2744
+ "kind": "text",
2745
+ "nullable": true
2746
+ },
2747
+ "read_at": {
2748
+ "kind": "timestamp",
2749
+ "nullable": false
2750
+ }
2751
+ },
2752
+ "primaryKey": ["tide_id"],
2753
+ "indexes": [["read_at"]]
2754
+ }
2755
+ },
2756
+ "links": [],
2757
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2758
+ }
2759
+ }
2760
+ ]
2761
+ },
2762
+ "isValid": false
2763
+ },
2764
+ {
2765
+ "title": "refuses an index column that the table lacks",
2766
+ "file": {
2767
+ "kit": 1,
2768
+ "deployment": "harbour",
2769
+ "consumers": [
2770
+ {
2771
+ "name": "tide_log",
2772
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2773
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2774
+ "pins": {},
2775
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2776
+ "manifest": {
2777
+ "name": "tide_log",
2778
+ "input": {
2779
+ "mode": "fact",
2780
+ "streams": ["facts.harbour.tide"]
2781
+ },
2782
+ "exports": {
2783
+ "init": "tide_log_init",
2784
+ "apply": "tide_log_apply_fact"
2785
+ },
2786
+ "imports": [
2787
+ {
2788
+ "kind": "row",
2789
+ "table": "tide_reading",
2790
+ "length": "readTideReadingLength",
2791
+ "into": "readTideReadingInto"
2792
+ }
2793
+ ],
2794
+ "tables": {
2795
+ "tide_reading": {
2796
+ "columns": {
2797
+ "id": {
2798
+ "kind": "entityID",
2799
+ "nullable": false
2800
+ },
2801
+ "height_cm": {
2802
+ "kind": "integer",
2803
+ "nullable": false
2804
+ },
2805
+ "note": {
2806
+ "kind": "text",
2807
+ "nullable": true
2808
+ },
2809
+ "read_at": {
2810
+ "kind": "timestamp",
2811
+ "nullable": false
2812
+ }
2813
+ },
2814
+ "primaryKey": ["id"],
2815
+ "indexes": [["height"]]
2816
+ }
2817
+ },
2818
+ "links": [],
2819
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2820
+ }
2821
+ }
2822
+ ]
2823
+ },
2824
+ "isValid": false
2825
+ },
2826
+ {
2827
+ "title": "refuses a row read of a table named constructor that the consumer does not own",
2828
+ "file": {
2829
+ "kit": 1,
2830
+ "deployment": "harbour",
2831
+ "consumers": [
2832
+ {
2833
+ "name": "tide_log",
2834
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2835
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2836
+ "pins": {},
2837
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2838
+ "manifest": {
2839
+ "name": "tide_log",
2840
+ "input": {
2841
+ "mode": "fact",
2842
+ "streams": ["facts.harbour.tide"]
2843
+ },
2844
+ "exports": {
2845
+ "init": "tide_log_init",
2846
+ "apply": "tide_log_apply_fact"
2847
+ },
2848
+ "imports": [
2849
+ {
2850
+ "kind": "row",
2851
+ "table": "constructor",
2852
+ "length": "readTideReadingLength",
2853
+ "into": "readTideReadingInto"
2854
+ }
2855
+ ],
2856
+ "tables": {
2857
+ "tide_reading": {
2858
+ "columns": {
2859
+ "id": {
2860
+ "kind": "entityID",
2861
+ "nullable": false
2862
+ },
2863
+ "height_cm": {
2864
+ "kind": "integer",
2865
+ "nullable": false
2866
+ },
2867
+ "note": {
2868
+ "kind": "text",
2869
+ "nullable": true
2870
+ },
2871
+ "read_at": {
2872
+ "kind": "timestamp",
2873
+ "nullable": false
2874
+ }
2875
+ },
2876
+ "primaryKey": ["id"],
2877
+ "indexes": [["read_at"]]
2878
+ }
2879
+ },
2880
+ "links": [],
2881
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2882
+ }
2883
+ }
2884
+ ]
2885
+ },
2886
+ "isValid": false
2887
+ },
2888
+ {
2889
+ "title": "refuses a primary key column named toString that the table lacks",
2890
+ "file": {
2891
+ "kit": 1,
2892
+ "deployment": "harbour",
2893
+ "consumers": [
2894
+ {
2895
+ "name": "tide_log",
2896
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2897
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2898
+ "pins": {},
2899
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2900
+ "manifest": {
2901
+ "name": "tide_log",
2902
+ "input": {
2903
+ "mode": "fact",
2904
+ "streams": ["facts.harbour.tide"]
2905
+ },
2906
+ "exports": {
2907
+ "init": "tide_log_init",
2908
+ "apply": "tide_log_apply_fact"
2909
+ },
2910
+ "imports": [
2911
+ {
2912
+ "kind": "row",
2913
+ "table": "tide_reading",
2914
+ "length": "readTideReadingLength",
2915
+ "into": "readTideReadingInto"
2916
+ }
2917
+ ],
2918
+ "tables": {
2919
+ "tide_reading": {
2920
+ "columns": {
2921
+ "id": {
2922
+ "kind": "entityID",
2923
+ "nullable": false
2924
+ },
2925
+ "height_cm": {
2926
+ "kind": "integer",
2927
+ "nullable": false
2928
+ },
2929
+ "note": {
2930
+ "kind": "text",
2931
+ "nullable": true
2932
+ },
2933
+ "read_at": {
2934
+ "kind": "timestamp",
2935
+ "nullable": false
2936
+ }
2937
+ },
2938
+ "primaryKey": ["toString"],
2939
+ "indexes": [["read_at"]]
2940
+ }
2941
+ },
2942
+ "links": [],
2943
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
2944
+ }
2945
+ }
2946
+ ]
2947
+ },
2948
+ "isValid": false
2949
+ },
2950
+ {
2951
+ "title": "refuses a module hash that is not 64 hex digits",
2952
+ "file": {
2953
+ "kit": 1,
2954
+ "deployment": "harbour",
2955
+ "consumers": [
2956
+ {
2957
+ "name": "tide_log",
2958
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2959
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
2960
+ "pins": {},
2961
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
2962
+ "manifest": {
2963
+ "name": "tide_log",
2964
+ "input": {
2965
+ "mode": "fact",
2966
+ "streams": ["facts.harbour.tide"]
2967
+ },
2968
+ "exports": {
2969
+ "init": "tide_log_init",
2970
+ "apply": "tide_log_apply_fact"
2971
+ },
2972
+ "imports": [
2973
+ {
2974
+ "kind": "row",
2975
+ "table": "tide_reading",
2976
+ "length": "readTideReadingLength",
2977
+ "into": "readTideReadingInto"
2978
+ }
2979
+ ],
2980
+ "tables": {
2981
+ "tide_reading": {
2982
+ "columns": {
2983
+ "id": {
2984
+ "kind": "entityID",
2985
+ "nullable": false
2986
+ },
2987
+ "height_cm": {
2988
+ "kind": "integer",
2989
+ "nullable": false
2990
+ },
2991
+ "note": {
2992
+ "kind": "text",
2993
+ "nullable": true
2994
+ },
2995
+ "read_at": {
2996
+ "kind": "timestamp",
2997
+ "nullable": false
2998
+ }
2999
+ },
3000
+ "primaryKey": ["id"],
3001
+ "indexes": [["read_at"]]
3002
+ }
3003
+ },
3004
+ "links": [],
3005
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
3006
+ }
3007
+ }
3008
+ ]
3009
+ },
3010
+ "isValid": false
3011
+ },
3012
+ {
3013
+ "title": "refuses a version hash in capitals",
3014
+ "file": {
3015
+ "kit": 1,
3016
+ "deployment": "harbour",
3017
+ "consumers": [
3018
+ {
3019
+ "name": "tide_log",
3020
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3021
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
3022
+ "pins": {},
3023
+ "version": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
3024
+ "manifest": {
3025
+ "name": "tide_log",
3026
+ "input": {
3027
+ "mode": "fact",
3028
+ "streams": ["facts.harbour.tide"]
3029
+ },
3030
+ "exports": {
3031
+ "init": "tide_log_init",
3032
+ "apply": "tide_log_apply_fact"
3033
+ },
3034
+ "imports": [
3035
+ {
3036
+ "kind": "row",
3037
+ "table": "tide_reading",
3038
+ "length": "readTideReadingLength",
3039
+ "into": "readTideReadingInto"
3040
+ }
3041
+ ],
3042
+ "tables": {
3043
+ "tide_reading": {
3044
+ "columns": {
3045
+ "id": {
3046
+ "kind": "entityID",
3047
+ "nullable": false
3048
+ },
3049
+ "height_cm": {
3050
+ "kind": "integer",
3051
+ "nullable": false
3052
+ },
3053
+ "note": {
3054
+ "kind": "text",
3055
+ "nullable": true
3056
+ },
3057
+ "read_at": {
3058
+ "kind": "timestamp",
3059
+ "nullable": false
3060
+ }
3061
+ },
3062
+ "primaryKey": ["id"],
3063
+ "indexes": [["read_at"]]
3064
+ }
3065
+ },
3066
+ "links": [],
3067
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
3068
+ }
3069
+ }
3070
+ ]
3071
+ },
3072
+ "isValid": false
3073
+ },
3074
+ {
3075
+ "title": "refuses a pin that is not a hash",
3076
+ "file": {
3077
+ "kit": 1,
3078
+ "deployment": "harbour",
3079
+ "consumers": [
3080
+ {
3081
+ "name": "tide_log",
3082
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3083
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
3084
+ "pins": {
3085
+ "tide_model": "latest"
3086
+ },
3087
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
3088
+ "manifest": {
3089
+ "name": "tide_log",
3090
+ "input": {
3091
+ "mode": "fact",
3092
+ "streams": ["facts.harbour.tide"]
3093
+ },
3094
+ "exports": {
3095
+ "init": "tide_log_init",
3096
+ "apply": "tide_log_apply_fact"
3097
+ },
3098
+ "imports": [
3099
+ {
3100
+ "kind": "row",
3101
+ "table": "tide_reading",
3102
+ "length": "readTideReadingLength",
3103
+ "into": "readTideReadingInto"
3104
+ }
3105
+ ],
3106
+ "tables": {
3107
+ "tide_reading": {
3108
+ "columns": {
3109
+ "id": {
3110
+ "kind": "entityID",
3111
+ "nullable": false
3112
+ },
3113
+ "height_cm": {
3114
+ "kind": "integer",
3115
+ "nullable": false
3116
+ },
3117
+ "note": {
3118
+ "kind": "text",
3119
+ "nullable": true
3120
+ },
3121
+ "read_at": {
3122
+ "kind": "timestamp",
3123
+ "nullable": false
3124
+ }
3125
+ },
3126
+ "primaryKey": ["id"],
3127
+ "indexes": [["read_at"]]
3128
+ }
3129
+ },
3130
+ "links": [],
3131
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
3132
+ }
3133
+ }
3134
+ ]
3135
+ },
3136
+ "isValid": false
3137
+ },
3138
+ {
3139
+ "title": "refuses a module path that leaves the folder",
3140
+ "file": {
3141
+ "kit": 1,
3142
+ "deployment": "harbour",
3143
+ "consumers": [
3144
+ {
3145
+ "name": "tide_log",
3146
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3147
+ "path": "../tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
3148
+ "pins": {},
3149
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
3150
+ "manifest": {
3151
+ "name": "tide_log",
3152
+ "input": {
3153
+ "mode": "fact",
3154
+ "streams": ["facts.harbour.tide"]
3155
+ },
3156
+ "exports": {
3157
+ "init": "tide_log_init",
3158
+ "apply": "tide_log_apply_fact"
3159
+ },
3160
+ "imports": [
3161
+ {
3162
+ "kind": "row",
3163
+ "table": "tide_reading",
3164
+ "length": "readTideReadingLength",
3165
+ "into": "readTideReadingInto"
3166
+ }
3167
+ ],
3168
+ "tables": {
3169
+ "tide_reading": {
3170
+ "columns": {
3171
+ "id": {
3172
+ "kind": "entityID",
3173
+ "nullable": false
3174
+ },
3175
+ "height_cm": {
3176
+ "kind": "integer",
3177
+ "nullable": false
3178
+ },
3179
+ "note": {
3180
+ "kind": "text",
3181
+ "nullable": true
3182
+ },
3183
+ "read_at": {
3184
+ "kind": "timestamp",
3185
+ "nullable": false
3186
+ }
3187
+ },
3188
+ "primaryKey": ["id"],
3189
+ "indexes": [["read_at"]]
3190
+ }
3191
+ },
3192
+ "links": [],
3193
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
3194
+ }
3195
+ }
3196
+ ]
3197
+ },
3198
+ "isValid": false
3199
+ },
3200
+ {
3201
+ "title": "refuses an absolute module path",
3202
+ "file": {
3203
+ "kit": 1,
3204
+ "deployment": "harbour",
3205
+ "consumers": [
3206
+ {
3207
+ "name": "tide_log",
3208
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3209
+ "path": "/srv/tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
3210
+ "pins": {},
3211
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
3212
+ "manifest": {
3213
+ "name": "tide_log",
3214
+ "input": {
3215
+ "mode": "fact",
3216
+ "streams": ["facts.harbour.tide"]
3217
+ },
3218
+ "exports": {
3219
+ "init": "tide_log_init",
3220
+ "apply": "tide_log_apply_fact"
3221
+ },
3222
+ "imports": [
3223
+ {
3224
+ "kind": "row",
3225
+ "table": "tide_reading",
3226
+ "length": "readTideReadingLength",
3227
+ "into": "readTideReadingInto"
3228
+ }
3229
+ ],
3230
+ "tables": {
3231
+ "tide_reading": {
3232
+ "columns": {
3233
+ "id": {
3234
+ "kind": "entityID",
3235
+ "nullable": false
3236
+ },
3237
+ "height_cm": {
3238
+ "kind": "integer",
3239
+ "nullable": false
3240
+ },
3241
+ "note": {
3242
+ "kind": "text",
3243
+ "nullable": true
3244
+ },
3245
+ "read_at": {
3246
+ "kind": "timestamp",
3247
+ "nullable": false
3248
+ }
3249
+ },
3250
+ "primaryKey": ["id"],
3251
+ "indexes": [["read_at"]]
3252
+ }
3253
+ },
3254
+ "links": [],
3255
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
3256
+ }
3257
+ }
3258
+ ]
3259
+ },
3260
+ "isValid": false
3261
+ },
3262
+ {
3263
+ "title": "refuses an entry whose name differs from its manifest",
3264
+ "file": {
3265
+ "kit": 1,
3266
+ "deployment": "harbour",
3267
+ "consumers": [
3268
+ {
3269
+ "name": "tide_history",
3270
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3271
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
3272
+ "pins": {},
3273
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
3274
+ "manifest": {
3275
+ "name": "tide_log",
3276
+ "input": {
3277
+ "mode": "fact",
3278
+ "streams": ["facts.harbour.tide"]
3279
+ },
3280
+ "exports": {
3281
+ "init": "tide_log_init",
3282
+ "apply": "tide_log_apply_fact"
3283
+ },
3284
+ "imports": [
3285
+ {
3286
+ "kind": "row",
3287
+ "table": "tide_reading",
3288
+ "length": "readTideReadingLength",
3289
+ "into": "readTideReadingInto"
3290
+ }
3291
+ ],
3292
+ "tables": {
3293
+ "tide_reading": {
3294
+ "columns": {
3295
+ "id": {
3296
+ "kind": "entityID",
3297
+ "nullable": false
3298
+ },
3299
+ "height_cm": {
3300
+ "kind": "integer",
3301
+ "nullable": false
3302
+ },
3303
+ "note": {
3304
+ "kind": "text",
3305
+ "nullable": true
3306
+ },
3307
+ "read_at": {
3308
+ "kind": "timestamp",
3309
+ "nullable": false
3310
+ }
3311
+ },
3312
+ "primaryKey": ["id"],
3313
+ "indexes": [["read_at"]]
3314
+ }
3315
+ },
3316
+ "links": [],
3317
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
3318
+ }
3319
+ }
3320
+ ]
3321
+ },
3322
+ "isValid": false
3323
+ },
3324
+ {
3325
+ "title": "refuses a nullable flag left out",
3326
+ "file": {
3327
+ "kit": 1,
3328
+ "deployment": "harbour",
3329
+ "consumers": [
3330
+ {
3331
+ "name": "tide_log",
3332
+ "module": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3333
+ "path": "tide_log/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wasm",
3334
+ "pins": {},
3335
+ "version": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
3336
+ "manifest": {
3337
+ "name": "tide_log",
3338
+ "input": {
3339
+ "mode": "fact",
3340
+ "streams": ["facts.harbour.tide"]
3341
+ },
3342
+ "exports": {
3343
+ "init": "tide_log_init",
3344
+ "apply": "tide_log_apply_fact"
3345
+ },
3346
+ "imports": [
3347
+ {
3348
+ "kind": "row",
3349
+ "table": "tide_reading",
3350
+ "length": "readTideReadingLength",
3351
+ "into": "readTideReadingInto"
3352
+ }
3353
+ ],
3354
+ "tables": {
3355
+ "tide_reading": {
3356
+ "columns": {
3357
+ "id": {
3358
+ "kind": "entityID",
3359
+ "nullable": false
3360
+ },
3361
+ "height_cm": {
3362
+ "kind": "integer",
3363
+ "nullable": false
3364
+ },
3365
+ "note": {
3366
+ "kind": "text"
3367
+ },
3368
+ "read_at": {
3369
+ "kind": "timestamp",
3370
+ "nullable": false
3371
+ }
3372
+ },
3373
+ "primaryKey": ["id"],
3374
+ "indexes": [["read_at"]]
3375
+ }
3376
+ },
3377
+ "links": [],
3378
+ "schema": "CREATE TABLE \"tide_reading\" (\n \"id\" TEXT NOT NULL\n);\n"
3379
+ }
3380
+ }
3381
+ ]
3382
+ },
3383
+ "isValid": false
3384
+ }
3385
+ ]
3386
+ }