{"slug":"clouds-and-spaceships","name":"Clouds and Spaceships","description":"For Worldbuilders, Storytellers, and Mapmakers: turn an image into an interactive canvas of maps and stories, linked to wiki articles and glossaries.","author":"Namatamago Dev","active_installs":0,"version":"1.0.0","wp_org_url":"https://wordpress.org/plugins/clouds-and-spaceships/","is_closed":false,"cleanup":{"has_uninstall_hook":true,"drops_tables_on_uninstall":true,"deletes_options_on_uninstall":false},"tables":[{"table_name":"clouansp_map_areas","full_table_name":"wp_clouansp_map_areas","description":"Stores clouansp map areas data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"map_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"linked_post_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"type","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"shape_type","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"title","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"object_time","type":"INT","nullable":false,"primary_key":false},{"name":"nodes","type":"LONGTEXT","nullable":false,"primary_key":false},{"name":"background_image_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"infobox_source","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"infobox_data","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"canvas_styles","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"updated_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clouansp_map_areas ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, map_id BIGINT UNSIGNED NOT NULL, linked_post_id BIGINT UNSIGNED NULL DEFAULT NULL, type VARCHAR(20) NOT NULL DEFAULT 'POLITICAL', shape_type VARCHAR(20) NOT NULL DEFAULT 'POLYGON', title VARCHAR(255) NOT NULL DEFAULT '', object_time INT NOT NULL DEFAULT 0, nodes LONGTEXT NOT NULL, background_image_id BIGINT UNSIGNED NULL DEFAULT NULL, infobox_source VARCHAR(10) NOT NULL DEFAULT 'manual', infobox_data LONGTEXT NULL DEFAULT NULL, canvas_styles LONGTEXT NULL DEFAULT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_map_id (map_id), KEY idx_linked_post (linked_post_id) ) $charset_collate;\");"},{"table_name":"clouansp_map_hierarchy","full_table_name":"wp_clouansp_map_hierarchy","description":"Stores clouansp map hierarchy data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"parent_map_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"child_map_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"shape_type","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"nodes","type":"LONGTEXT","nullable":false,"primary_key":false},{"name":"canvas_styles","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"title_override","type":"VARCHAR(255)","nullable":true,"primary_key":false},{"name":"description_override","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"updated_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clouansp_map_hierarchy ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, parent_map_id BIGINT UNSIGNED NOT NULL, child_map_id BIGINT UNSIGNED NOT NULL, shape_type VARCHAR(20) NOT NULL DEFAULT 'POLYGON', nodes LONGTEXT NOT NULL, canvas_styles LONGTEXT NULL DEFAULT NULL, title_override VARCHAR(255) NULL DEFAULT NULL, description_override LONGTEXT NULL DEFAULT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uq_parent_child (parent_map_id, child_map_id), KEY idx_parent_map (parent_map_id), KEY idx_child_map (child_map_id) ) $charset_collate;\");"},{"table_name":"clouansp_map_labels","full_table_name":"wp_clouansp_map_labels","description":"Stores clouansp map labels data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"map_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"linked_post_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"text","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"x","type":"INT","nullable":false,"primary_key":false},{"name":"y","type":"INT","nullable":false,"primary_key":false},{"name":"placement","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"offset_x","type":"INT","nullable":false,"primary_key":false},{"name":"offset_y","type":"INT","nullable":false,"primary_key":false},{"name":"object_time","type":"INT","nullable":false,"primary_key":false},{"name":"infobox_source","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"infobox_data","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"canvas_styles","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"updated_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clouansp_map_labels ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, map_id BIGINT UNSIGNED NOT NULL, linked_post_id BIGINT UNSIGNED NULL DEFAULT NULL, text VARCHAR(255) NOT NULL DEFAULT '', x INT NOT NULL DEFAULT 0, y INT NOT NULL DEFAULT 0, placement VARCHAR(10) NOT NULL DEFAULT 'centered', offset_x INT NOT NULL DEFAULT 40, offset_y INT NOT NULL DEFAULT -40, object_time INT NOT NULL DEFAULT 0, infobox_source VARCHAR(10) NOT NULL DEFAULT 'manual', infobox_data LONGTEXT NULL DEFAULT NULL, canvas_styles LONGTEXT NULL DEFAULT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_map_id (map_id), KEY idx_linked_post (linked_post_id) ) $charset_collate;\");"},{"table_name":"clouansp_map_objects","full_table_name":"wp_clouansp_map_objects","description":"Stores clouansp map objects data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"map_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"linked_post_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"type","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"svg_slug","type":"VARCHAR(100)","nullable":false,"primary_key":false},{"name":"icon_image_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"title","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"x","type":"INT","nullable":false,"primary_key":false},{"name":"y","type":"INT","nullable":false,"primary_key":false},{"name":"object_time","type":"INT","nullable":false,"primary_key":false},{"name":"infobox_source","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"infobox_data","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"canvas_styles","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"updated_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clouansp_map_objects ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, map_id BIGINT UNSIGNED NOT NULL, linked_post_id BIGINT UNSIGNED NULL DEFAULT NULL, type VARCHAR(20) NOT NULL DEFAULT 'LOCATION', svg_slug VARCHAR(100) NOT NULL DEFAULT '', icon_image_id BIGINT UNSIGNED NULL DEFAULT NULL, title VARCHAR(255) NOT NULL DEFAULT '', x INT NOT NULL DEFAULT 0, y INT NOT NULL DEFAULT 0, object_time INT NOT NULL DEFAULT 0, infobox_source VARCHAR(10) NOT NULL DEFAULT 'manual', infobox_data LONGTEXT NULL DEFAULT NULL, canvas_styles LONGTEXT NULL DEFAULT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_map_id (map_id), KEY idx_linked_post (linked_post_id) ) $charset_collate;\");"},{"table_name":"clouansp_story_edges","full_table_name":"wp_clouansp_story_edges","description":"Stores clouansp story edges data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"story_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"from_node_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"to_node_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"sort_order","type":"INT","nullable":false,"primary_key":false},{"name":"line_color","type":"VARCHAR(9)","nullable":true,"primary_key":false},{"name":"line_width","type":"FLOAT","nullable":true,"primary_key":false},{"name":"line_style","type":"VARCHAR(10)","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clouansp_story_edges ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, story_id BIGINT UNSIGNED NOT NULL, from_node_id BIGINT UNSIGNED NOT NULL, to_node_id BIGINT UNSIGNED NOT NULL, sort_order INT NOT NULL DEFAULT 0, line_color VARCHAR(9) NULL DEFAULT NULL, line_width FLOAT NULL DEFAULT NULL, line_style VARCHAR(10) NULL DEFAULT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uq_edge (from_node_id, to_node_id), KEY idx_story_id (story_id), KEY idx_from_node (from_node_id), KEY idx_to_node (to_node_id) ) $charset_collate;\");"},{"table_name":"clouansp_story_nodes","full_table_name":"wp_clouansp_story_nodes","description":"Stores clouansp story nodes data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"story_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"path_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"substory_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"title_override","type":"VARCHAR(255)","nullable":true,"primary_key":false},{"name":"excerpt_override","type":"TEXT","nullable":true,"primary_key":false},{"name":"x","type":"FLOAT","nullable":false,"primary_key":false},{"name":"y","type":"FLOAT","nullable":false,"primary_key":false},{"name":"icon_type","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"icon_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"icon_color","type":"VARCHAR(9)","nullable":false,"primary_key":false},{"name":"icon_size","type":"FLOAT","nullable":false,"primary_key":false},{"name":"icon_border_color","type":"VARCHAR(9)","nullable":false,"primary_key":false},{"name":"icon_border_width","type":"FLOAT","nullable":false,"primary_key":false},{"name":"icon_bg_color","type":"VARCHAR(9)","nullable":false,"primary_key":false},{"name":"icon_bg_shape","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"marker_type","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"marker_icon_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"marker_color","type":"VARCHAR(9)","nullable":true,"primary_key":false},{"name":"marker_size","type":"FLOAT","nullable":true,"primary_key":false},{"name":"marker_icon_offset_x","type":"FLOAT","nullable":true,"primary_key":false},{"name":"marker_icon_offset_y","type":"FLOAT","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"updated_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clouansp_story_nodes ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, story_id BIGINT UNSIGNED NOT NULL, path_id BIGINT UNSIGNED NULL DEFAULT NULL, substory_id BIGINT UNSIGNED NULL DEFAULT NULL, title_override VARCHAR(255) NULL DEFAULT NULL, excerpt_override TEXT NULL DEFAULT NULL, x FLOAT NOT NULL DEFAULT 0.5, y FLOAT NOT NULL DEFAULT 0.5, icon_type VARCHAR(10) NOT NULL DEFAULT 'round', icon_id BIGINT UNSIGNED NULL DEFAULT NULL, icon_color VARCHAR(9) NOT NULL DEFAULT '#ffffff', icon_size FLOAT NOT NULL DEFAULT 1.0, icon_border_color VARCHAR(9) NOT NULL DEFAULT '#000000', icon_border_width FLOAT NOT NULL DEFAULT 2.0, icon_bg_color VARCHAR(9) NOT NULL DEFAULT '#ffffff', icon_bg_shape VARCHAR(10) NOT NULL DEFAULT 'none', marker_type VARCHAR(10) NOT NULL DEFAULT 'inherit', marker_icon_id BIGINT UNSIGNED NULL DEFAULT NULL, marker_color VARCHAR(9) NULL DEFAULT NULL, marker_size FLOAT NULL DEFAULT NULL, marker_icon_offset_x FLOAT NULL DEFAULT NULL, marker_icon_offset_y FLOAT NULL DEFAULT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_story_id (story_id), KEY idx_path_id (path_id), KEY idx_substory_id (substory_id) ) $charset_collate;\");"},{"table_name":"clouansp_story_paths","full_table_name":"wp_clouansp_story_paths","description":"Stores clouansp story paths data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"story_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"label","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"sort_order","type":"INT","nullable":false,"primary_key":false},{"name":"marker_color","type":"VARCHAR(9)","nullable":false,"primary_key":false},{"name":"marker_size","type":"FLOAT","nullable":false,"primary_key":false},{"name":"marker_type","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"marker_icon_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"marker_icon_offset_x","type":"FLOAT","nullable":false,"primary_key":false},{"name":"marker_icon_offset_y","type":"FLOAT","nullable":false,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clouansp_story_paths ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, story_id BIGINT UNSIGNED NOT NULL, label VARCHAR(255) NOT NULL DEFAULT '', sort_order INT NOT NULL DEFAULT 0, marker_color VARCHAR(9) NOT NULL DEFAULT '#00aaff', marker_size FLOAT NOT NULL DEFAULT 5.0, marker_type VARCHAR(10) NOT NULL DEFAULT 'ring', marker_icon_id BIGINT UNSIGNED NULL DEFAULT NULL, marker_icon_offset_x FLOAT NOT NULL DEFAULT 0.0, marker_icon_offset_y FLOAT NOT NULL DEFAULT -30.0, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_story_id (story_id) ) $charset_collate;\");"}],"table_count":7}