{
  "_meta": {
    "version": "1.0",
    "disclaimer": "Synthetic demo data inspired by real Baltic geography, MMSI/OUI conventions, and infrastructure. Not real observations.",
    "documentation": "../docs/canonical-catalogs.md"
  },
  "vessels": [
    {"mmsi": 230999401, "imo": 9999401, "name": "MV AALLOTAR",        "flag": "FI", "mid": 230, "ais_type": 70, "type_label": "Bulk carrier",       "loa_m": 189, "beam_m": 32, "draft_m": 10.9, "callsign": "OJZZ1", "used_in": ["S1","S3","S5","S6"], "role": "protagonist"},
    {"mmsi": 230999081, "imo": 9999081, "name": "MV SAIMAA AURORA",   "flag": "FI", "mid": 230, "ais_type": 70, "type_label": "General cargo",      "loa_m": 158, "beam_m": 24, "draft_m": 8.4,  "callsign": "OJYY2", "used_in": ["S2"],          "role": "rendezvous_a"},
    {"mmsi": 273999142, "imo": 9999142, "name": "MV NEVA CASCADE",    "flag": "RU", "mid": 273, "ais_type": 70, "type_label": "General cargo",      "loa_m": 145, "beam_m": 22, "draft_m": 7.9,  "callsign": "UFZZ3", "used_in": ["S2"],          "role": "rendezvous_b"},
    {"mmsi": 276999812, "imo": 9999812, "name": "MV SUMUKKO",         "flag": "EE", "mid": 276, "ais_type": 52, "type_label": "Offshore service",   "loa_m": 64,  "beam_m": 14, "draft_m": 4.8,  "callsign": "ESYY4", "used_in": ["S6"],          "role": "meeting_vessel"},
    {"mmsi": 230199540, "imo": 0,       "name": "F/V TAHTI",          "display_name": "F/V TÄHTI", "flag": "FI", "mid": 230, "ais_type": 30, "type_label": "Fishing",            "loa_m": 12,  "beam_m": 4,  "draft_m": 1.6,  "callsign": "OF7654","used_in": ["S4"],          "role": "spoof_victim"},
    {"mmsi": null,      "imo": null,    "name": "SPOOF PLATFORM X",   "flag": null, "mid": null,"ais_type": null,"type_label": "Unknown (radar truth ~28-34m)", "loa_m": 30, "beam_m": 7, "draft_m": null, "callsign": null, "used_in": ["S4"], "role": "spoofer", "broadcasts_mmsi": 230199540},
    {"mmsi": 230888011, "imo": 8888011, "name": "M/V VENLA RESEARCH", "flag": "FI", "mid": 230, "ais_type": 52, "type_label": "Research",           "loa_m": 48,  "beam_m": 11, "draft_m": 3.8,  "callsign": "OJWW5", "used_in": ["S1","S3","S6"],"role": "decoy_research"},
    {"mmsi": 230888022, "imo": 8888022, "name": "F/V SILAKKA",        "flag": "FI", "mid": 230, "ais_type": 30, "type_label": "Fishing",            "loa_m": 14,  "beam_m": 4,  "draft_m": 1.8,  "callsign": "OF8888", "used_in": ["S4"],         "role": "decoy_fishing"},
    {"mmsi": 230888301, "imo": 8888301, "name": "MV NORDLYS HARMONY", "flag": "FI", "mid": 230, "ais_type": 80, "type_label": "Tanker",             "loa_m": 183, "beam_m": 32, "draft_m": 11.0, "callsign": "OJWW6", "used_in": ["S2"],         "role": "decoy_historical_sts"},
    {"mmsi": 256888422, "imo": 8888422, "name": "MV BALTIC EMERALD",  "flag": "MT", "mid": 256, "ais_type": 80, "type_label": "Tanker",             "loa_m": 176, "beam_m": 28, "draft_m": 10.5, "callsign": "9HJJ7", "used_in": ["S2"],         "role": "decoy_historical_sts"}
  ],
  "persons": [
    {"id": "P-AAL-MASTER", "ship": "MV AALLOTAR",      "role": "Master",          "device_mac": "A4:83:E7:5C:9B:11", "device": "iPhone",        "oui_vendor": "Apple",   "persistent": true},
    {"id": "P-AAL-CHOFF",  "ship": "MV AALLOTAR",      "role": "Chief Officer",   "device_mac": "38:F9:D3:11:22:01", "device": "Samsung phone", "oui_vendor": "Samsung", "persistent": true},
    {"id": "P-AAL-BOSUN",  "ship": "MV AALLOTAR",      "role": "Bosun",           "device_mac": "B0:7D:64:A1:5B:02", "device": "AirTag BLE",    "oui_vendor": "Apple",   "persistent": true},
    {"id": "P-AAL-ENG",    "ship": "MV AALLOTAR",      "role": "Engineer",        "device_mac": "8C:16:45:33:44:03", "device": "Lenovo laptop", "oui_vendor": "Lenovo",  "persistent": true},
    {"id": "P-AAL-COOK",   "ship": "MV AALLOTAR",      "role": "Cook",            "device_mac": "04:CF:8C:55:66:04", "device": "Xiaomi phone",  "oui_vendor": "Xiaomi",  "persistent": true, "missing_in_s6": true},
    {"id": "P-AAL-AB1",    "ship": "MV AALLOTAR",      "role": "AB seaman",       "device_mac": "38:F9:D3:11:22:05", "device": "Samsung phone", "oui_vendor": "Samsung", "persistent": true, "missing_in_s6": true},
    {"id": "P-AAL-AB2",    "ship": "MV AALLOTAR",      "role": "AB seaman",       "device_mac": "00:E0:FC:77:88:06", "device": "Huawei phone",  "oui_vendor": "Huawei",  "persistent": true, "missing_in_s6": true},
    {"id": "P-AAL-OP1",    "ship": "MV AALLOTAR",      "role": "Drone operator",  "device_mac": "A4:83:E7:5C:9B:10", "device": "iPad",          "oui_vendor": "Apple",   "persistent": true},
    {"id": "P-AAL-NEW1",   "ship": "MV AALLOTAR",      "role": "unknown",         "device_mac": "28:6E:D4:99:00:91", "device": "Huawei phone",  "oui_vendor": "Huawei",  "persistent": false, "new_in_s6": true},
    {"id": "P-AAL-NEW2",   "ship": "MV AALLOTAR",      "role": "unknown",         "device_mac": "34:DE:1A:AA:00:92", "device": "ZTE phone",     "oui_vendor": "ZTE",     "persistent": false, "new_in_s6": true},
    {"id": "P-SAU-MASTER", "ship": "MV SAIMAA AURORA", "role": "Master",          "device_mac": "A4:83:E7:5C:9B:21", "device": "iPhone",        "oui_vendor": "Apple",   "persistent": true},
    {"id": "P-SAU-CHOFF",  "ship": "MV SAIMAA AURORA", "role": "Chief Officer",   "device_mac": "38:F9:D3:11:22:22", "device": "Samsung phone", "oui_vendor": "Samsung", "persistent": true},
    {"id": "P-NEV-MASTER", "ship": "MV NEVA CASCADE",  "role": "Master",          "device_mac": "00:E0:FC:77:88:31", "device": "Huawei phone",  "oui_vendor": "Huawei",  "persistent": true},
    {"id": "P-NEV-CHOFF",  "ship": "MV NEVA CASCADE",  "role": "Chief Officer",   "device_mac": "04:CF:8C:55:66:32", "device": "Xiaomi phone",  "oui_vendor": "Xiaomi",  "persistent": true},
    {"id": "P-SUM-MASTER", "ship": "MV SUMUKKO",       "role": "Master",          "device_mac": "A4:83:E7:5C:9B:41", "device": "iPhone",        "oui_vendor": "Apple",   "persistent": true},
    {"id": "P-SUM-CHOFF",  "ship": "MV SUMUKKO",       "role": "Chief Officer",   "device_mac": "38:F9:D3:11:22:42", "device": "Samsung phone", "oui_vendor": "Samsung", "persistent": true},
    {"id": "P-TAH-OWNER",  "ship": "F/V TAHTI",        "role": "Owner-operator",  "device_mac": "A4:83:E7:5C:9B:51", "device": "iPhone",        "oui_vendor": "Apple",   "persistent": true},
    {"id": "P-TAH-GUEST1", "ship": "F/V TAHTI",        "role": "Guest",           "device_mac": "38:F9:D3:11:22:53", "device": "Samsung Galaxy","oui_vendor": "Samsung", "persistent": false, "used_in": ["S4"]},
    {"id": "P-TAH-ROUTER", "ship": "F/V TAHTI",        "role": "Onboard LTE router","device_mac": "A4:3C:5A:7A:00:01","device": "u-blox industrial router","oui_vendor": "u-blox","persistent": true, "used_in": ["S4"]},
    {"id": "P-VEN-MASTER", "ship": "M/V VENLA RESEARCH","role": "Master",         "device_mac": "A4:83:E7:5C:9B:71", "device": "iPhone",        "oui_vendor": "Apple",   "persistent": true, "used_in": ["S1","S3","S6"]},
    {"id": "P-VEN-CHOFF",  "ship": "M/V VENLA RESEARCH","role": "Chief Officer",  "device_mac": "38:F9:D3:11:22:73", "device": "Samsung phone", "oui_vendor": "Samsung", "persistent": true, "used_in": ["S1","S3","S6"]},
    {"id": "P-VEN-RESEARCHER","ship": "M/V VENLA RESEARCH","role": "Researcher",  "device_mac": "04:CF:8C:55:66:75", "device": "Xiaomi phone",  "oui_vendor": "Xiaomi",  "persistent": true, "used_in": ["S1","S3","S6"]},
    {"id": "P-VEN-AB",     "ship": "M/V VENLA RESEARCH","role": "AB seaman",      "device_mac": "B0:7D:64:A1:5B:77", "device": "AirTag BLE",    "oui_vendor": "Apple-BLE","persistent": true, "used_in": ["S1","S3","S6"]}
  ],
  "deployed_devices": [
    {"mac": "24:0A:C4:11:00:01", "vendor": "Espressif",         "kind": "anchor_iot", "scenario": "S3", "note": "Persistent post-loiter anchor MAC at JUNCTION centroid (Espressif Wi-Fi MCU)."},
    {"mac": "F4:5E:AB:11:00:01", "vendor": "Texas Instruments", "kind": "anchor_iot", "scenario": "S3", "note": "Persistent post-loiter anchor MAC at JUNCTION centroid (TI sub-GHz radio)."},
    {"mac": "A4:3C:5A:22:00:11", "vendor": "u-blox",            "kind": "anchor_iot", "scenario": "S3", "note": "Persistent post-loiter anchor MAC at JUNCTION centroid (u-blox LTE/GNSS module)."}
  ],
  "special_devices": {
    "s1_burner_mac":         {"mac": "7E:2A:F1:09:44:C8", "vendor": null,    "note": "Locally-administered burner appearing only during S1 dark window"},
    "s6_drone_mac":          {"mac": "5C:E2:8C:DD:EE:01", "vendor": "DJI",   "note": "Real DJI OUI 5C:E2:8C, synthetic suffix; used in S5 and S6 Stage D"},
    "s5_decoy_drone_mac":    {"mac": "90:3A:E6:11:22:33", "vendor": "Parrot","note": "Real Parrot OUI 90:3A:E6, synthetic suffix; legitimate coastguard inspection drone, allowlisted"}
  },
  "oui_vendors_real": {
    "Apple":    ["A4:83:E7"],
    "Samsung":  ["38:F9:D3"],
    "Xiaomi":   ["04:CF:8C"],
    "Huawei":   ["00:E0:FC"],
    "Lenovo":   ["8C:16:45"],
    "ZTE":      ["34:DE:1A"],
    "Apple-BLE":["B0:7D:64"],
    "DJI":      ["5C:E2:8C"],
    "Parrot":   ["90:3A:E6"],
    "Espressif":["24:0A:C4"],
    "TexasInstruments":["F4:5E:AB"],
    "u-blox":   ["A4:3C:5A"]
  },
  "ambient_mmsi_blocks": {
    "_meta": "Synthetic ambient/decoy MMSI range used by background ships in all scenarios. Format: 9XYYNNNNN where X=1 (FI-themed), 2 (EE-themed), 3 (RU-themed), 4 (other Baltic), YY=ship-type-code-tens, NNNNN=random. Never collides with real ITU MIDs (which live in 2XX-7XX).",
    "ranges": {
      "FI":    [910000000, 919999999],
      "EE":    [920000000, 929999999],
      "RU":    [930000000, 939999999],
      "OTHER": [940000000, 949999999]
    }
  }
}
