commit b8124b70857fedda21c0367be5b75c03c147719c Author: Michael Zhang Date: Sat May 20 02:26:34 2023 -0500 initial diff --git a/logseq/config.edn b/logseq/config.edn new file mode 100644 index 0000000..52a50ca --- /dev/null +++ b/logseq/config.edn @@ -0,0 +1,346 @@ +{:meta/version 1 + + ;; Currently, we support either "Markdown" or "Org". + ;; This can overwrite your global preference so that + ;; maybe your personal preferred format is Org but you'd + ;; need to use Markdown for some projects. + ;; :preferred-format "" + + ;; Preferred workflow style. + ;; Value is either ":now" for NOW/LATER style, + ;; or ":todo" for TODO/DOING style. + :preferred-workflow :now + + ;; The app will ignore those directories or files. + ;; E.g. :hidden ["/archived" "/test.md" "../assets/archived"] + :hidden [] + + ;; When creating the new journal page, the app will use your template if there is one. + ;; You only need to input your template name here. + :default-templates + {:journals ""} + + ;; Set a custom date format for journal page title + ;; Example: + ;; :journal/page-title-format "EEE, do MMM yyyy" + + ;; Whether to enable hover on tooltip preview feature + ;; Default is true, you can also toggle this via setting page + :ui/enable-tooltip? true + + ;; Show brackets around page references + ;; :ui/show-brackets? true + + ;; Enable showing the body of blocks when referencing them. + :ui/show-full-blocks? false + + ;; Enable Block timestamp + :feature/enable-block-timestamps? false + + ;; Enable remove accents when searching. + ;; After toggle this option, please remember to rebuild your search index by press (cmd+c cmd+s). + :feature/enable-search-remove-accents? true + + ;; Enable journals + ;; :feature/enable-journals? true + + ;; Enable flashcards + ;; :feature/enable-flashcards? true + + ;; Enable Whiteboards + ;; :feature/enable-whiteboards? true + + ;; Disable the built-in Scheduled tasks and deadlines query + ;; :feature/disable-scheduled-and-deadline-query? true + + ;; Specify the number of days in the future to display in the + ;; scheduled tasks and deadlines query, with a default value of 0 which + ;; only displays tasks for today. + ;; Example usage: + ;; Display all scheduled tasks and deadlines in the next 7 days + ;; :scheduled/future-days 7 + + ;; Specify the date on which the week starts. + ;; Goes from 0 to 6 (Monday to Sunday), default to 6 + :start-of-week 6 + + ;; Specify a custom CSS import + ;; This option take precedence over your local `logseq/custom.css` file + ;; You may find a list of awesome logseq themes here: + ;; https://github.com/logseq/awesome-logseq#css-themes + ;; Example: + ;; :custom-css-url "@import url('https://cdn.jsdelivr.net/gh/dracula/logseq@master/custom.css');" + + ;; Specify a custom js import + ;; This option take precedence over your local `logseq/custom.js` file + ;; :custom-js-url "" + + ;; Set a custom Arweave gateway + ;; Default gateway: https://arweave.net + ;; :arweave/gateway "" + + ;; Set Bullet indentation when exporting + ;; default option: tab + ;; Possible options are for `:sidebar` are + ;; 1. `:eight-spaces` as eight spaces + ;; 2. `:four-spaces` as four spaces + ;; 3. `:two-spaces` as two spaces + ;; :export/bullet-indentation :tab + + ;; When :all-pages-public? true, export repo would export all pages within that repo. + ;; Regardless of whether you've set any page to public or not. + ;; Example: + ;; :publishing/all-pages-public? true + + ;; Specify default home page and sidebar status for Logseq + ;; If not specified, Logseq default opens journals page on startup + ;; value for `:page` is name of page + ;; Possible options for `:sidebar` are + ;; 1. `"Contents"` to open up `Contents` in sidebar by default + ;; 2. `page name` to open up some page in sidebar + ;; 3. Or multiple pages in an array ["Contents" "Page A" "Page B"] + ;; If `:sidebar` is not set, sidebar will be hidden + ;; Example: + ;; 1. Setup page "Changelog" as home page and "Contents" in sidebar + ;; :default-home {:page "Changelog", :sidebar "Contents"} + ;; 2. Setup page "Jun 3rd, 2021" as home page without sidebar + ;; :default-home {:page "Jun 3rd, 2021"} + ;; 3. Setup page "home" as home page with multiple pages in sidebar + ;; :default-home {:page "home" :sidebar ["page a" "page b"]} + + ;; Tell logseq to use a specific folder in the repo as a default location for notes + ;; if not specified, notes are stored in `pages` directory + ;; :pages-directory "your-directory" + + ;; Tell logseq to use a specific folder in the repo as a default location for journals + ;; if not specified, journals are stored in `journals` directory + ;; :journals-directory "your-directory" + + ;; Set this to true will convert + ;; `[[Grant Ideas]]` to `[[file:./grant_ideas.org][Grant Ideas]]` for org-mode + ;; For more, see https://github.com/logseq/logseq/issues/672 + ;; :org-mode/insert-file-link? true + + ;; Setup custom shortcuts under `:shortcuts` key + ;; Syntax: + ;; 1. `+` means keys pressing simultaneously. eg: `ctrl+shift+a` + ;; 2. ` ` empty space between keys represents key chords. eg: `t s` means press `t` followed by `s` + ;; 3. `mod` means `Ctrl` for Windows/Linux and `Command` for Mac + ;; 4. use `false` to disable particular shortcut + ;; 5. you can define multiple bindings for one action, eg `["ctrl+j" "down"]` + ;; full list of configurable shortcuts are available below: + ;; https://github.com/logseq/logseq/blob/master/src/main/frontend/modules/shortcut/config.cljs + ;; Example: + ;; :shortcuts + ;; {:editor/new-block "enter" + ;; :editor/new-line "shift+enter" + ;; :editor/insert-link "mod+shift+k" + ;; :editor/highlight false + ;; :ui/toggle-settings "t s" + ;; :editor/up ["ctrl+k" "up"] + ;; :editor/down ["ctrl+j" "down"] + ;; :editor/left ["ctrl+h" "left"] + ;; :editor/right ["ctrl+l" "right"]} + :shortcuts {} + + ;; By default, pressing `Enter` in the document mode will create a new line. + ;; Set this to `true` so that it's the same behaviour as the usual outliner mode. + :shortcut/doc-mode-enter-for-new-block? false + + ;; Block content larger than `block/content-max-length` will not be searchable + ;; or editable for performance. + :block/content-max-length 10000 + + ;; Whether to show command doc on hover + :ui/show-command-doc? true + + ;; Whether to show empty bullets for non-document mode (the default mode) + :ui/show-empty-bullets? false + + ;; Pre-defined :view function to use with advanced queries + :query/views + {:pprint + (fn [r] [:pre.code (pprint r)])} + + ;; Pre-defined :result-transform function for use with advanced queries + :query/result-transforms + {:sort-by-priority + (fn [result] (sort-by (fn [h] (get h :block/priority "Z")) result))} + + ;; The app will show those queries in today's journal page, + ;; the "NOW" query asks the tasks which need to be finished "now", + ;; the "NEXT" query asks the future tasks. + :default-queries + {:journals + [{:title "🔨 NOW" + :query [:find (pull ?h [*]) + :in $ ?start ?today + :where + [?h :block/marker ?marker] + [(contains? #{"NOW" "DOING"} ?marker)] + [?h :block/page ?p] + [?p :block/journal? true] + [?p :block/journal-day ?d] + [(>= ?d ?start)] + [(<= ?d ?today)]] + :inputs [:14d :today] + :result-transform (fn [result] + (sort-by (fn [h] + (get h :block/priority "Z")) result)) + :collapsed? false} + {:title "📅 NEXT" + :query [:find (pull ?h [*]) + :in $ ?start ?next + :where + [?h :block/marker ?marker] + [(contains? #{"NOW" "LATER" "TODO"} ?marker)] + [?h :block/page ?p] + [?p :block/journal? true] + [?p :block/journal-day ?d] + [(> ?d ?start)] + [(< ?d ?next)]] + :inputs [:today :7d-after] + :collapsed? false}]} + + ;; Add your own commands to slash menu to speedup. + ;; E.g. + ;; :commands + ;; [ + ;; ["js" "Javascript"] + ;; ["md" "Markdown"] + ;; ] + :commands + [] + + ;; By default, a block can only be collapsed if it has some children. + ;; `:outliner/block-title-collapse-enabled? true` enables a block with a title + ;; (multiple lines) can be collapsed too. For example: + ;; - block title + ;; block content + :outliner/block-title-collapse-enabled? false + + ;; Macros replace texts and will make you more productive. + ;; For example: + ;; Change the :macros value below to: + ;; {"poem" "Rose is $1, violet's $2. Life's ordered: Org assists you."} + ;; input "{{poem red,blue}}" + ;; becomes + ;; Rose is red, violet's blue. Life's ordered: Org assists you. + :macros {} + + ;; The default level to be opened for the linked references. + ;; For example, if we have some example blocks like this: + ;; - a [[page]] (level 1) + ;; - b (level 2) + ;; - c (level 3) + ;; - d (level 4) + ;; + ;; With the default value of level 2, `b` will be collapsed. + ;; If we set the level's value to 3, `b` will be opened and `c` will be collapsed. + :ref/default-open-blocks-level 2 + + :ref/linked-references-collapsed-threshold 50 + + ;; Favorites to list on the left sidebar + :favorites [] + + ;; any number between 0 and 1 (the greater it is the faster the changes of the next-interval of card reviews) (default 0.5) + ;; :srs/learning-fraction 0.5 + + ;; the initial interval after the first successful review of a card (default 4) + ;; :srs/initial-interval 4 + + ;; hide specific properties for blocks + ;; E.g. :block-hidden-properties #{:created-at :updated-at} + ;; :block-hidden-properties #{} + + ;; Enable all your properties to have corresponding pages + :property-pages/enabled? true + + ;; Properties to exclude from having property pages + ;; E.g.:property-pages/excludelist #{:duration :author} + ;; :property-pages/excludelist + + ;; By default, property value separated by commas will not be treated as + ;; page references. You can add properties to enable it. + ;; E.g. :property/separated-by-commas #{:alias :tags} + ;; :property/separated-by-commas #{} + + ;; Properties that are ignored when parsing property values for references + ;; :ignored-page-references-keywords #{"author" "startup"} + + ;; logbook setup + ;; :logbook/settings + ;; {:with-second-support? false ;limit logbook to minutes, seconds will be eliminated + ;; :enabled-in-all-blocks true ;display logbook in all blocks after timetracking + ;; :enabled-in-timestamped-blocks false ;don't display logbook at all + ;; } + + ;; Mobile photo uploading setup + ;; :mobile/photo + ;; {:allow-editing? true + ;; :quality 80} + + ;; Mobile features options + ;; Gestures + ;; :mobile + ;; {:gestures/disabled-in-block-with-tags ["kanban"]} + + ;; Extra CodeMirror options + ;; See https://codemirror.net/5/doc/manual.html#config for possible options + ;; :editor/extra-codemirror-options {:keyMap "emacs" :lineWrapping true} + + ;; Enable logical outdenting + ;; :editor/logical-outdenting? true + + ;; When both text and a file are in the clipboard, paste the file + ;; :editor/preferred-pasting-file? true + + ;; Quick capture templates for receiving contents from other apps. + ;; Each template contains three elements {time}, {text} and {url}, which can be auto-expanded + ;; by received contents from other apps. Note: the {} cannot be omitted. + ;; - {time}: capture time + ;; - {date}: capture date using current date format, use `[[{date}]]` to get a page reference + ;; - {text}: text that users selected before sharing. + ;; - {url}: url or assets path for media files stored in Logseq. + ;; You can also reorder them, or even only use one or two of them in the template. + ;; You can also insert or format any text in the template as shown in the following examples. + ;; :quick-capture-templates + ;; {:text "[[quick capture]] **{time}**: {text} from {url}" + ;; :media "[[quick capture]] **{time}**: {url}"} + + ;; Quick capture options + ;; :quick-capture-options {:insert-today? false :redirect-page? false :default-page "my page"} + + ;; File sync options + ;; Ignore these files when syncing, regexp is supported. + ;; :file-sync/ignore-files [] + + ;; dwim (do what I mean) for Enter key when editing. + ;; Context-awareness of Enter key makes editing more easily + ; :dwim/settings { + ; :admonition&src? true + ; :markup? false + ; :block-ref? true + ; :page-ref? true + ; :properties? true + ; :list? true + ; } + + ;; Decide the way to escape the special characters in the page title. + ;; Warning: + ;; This is a dangerous operation. If you want to change the setting, + ;; should access the setting `Filename format` and follow the instructions. + ;; Or you have to rename all the affected files manually then re-index on all + ;; clients after the files are synced. Wrong handling may cause page titles + ;; containing special characters to be messy. + ;; Available values: + ;; :file/name-format :triple-lowbar + ;; ;use triple underscore `___` for slash `/` in page title + ;; ;use Percent-encoding for other invalid characters + :file/name-format :triple-lowbar + + ;; specify the format of the filename for journal files + ;; :journal/file-name-format "yyyy_MM_dd" + + } diff --git a/logseq/custom.css b/logseq/custom.css new file mode 100644 index 0000000..e69de29 diff --git a/pages/architecture.md b/pages/architecture.md new file mode 100644 index 0000000..3cf20d5 --- /dev/null +++ b/pages/architecture.md @@ -0,0 +1 @@ +- \ No newline at end of file diff --git a/pages/battle.md b/pages/battle.md new file mode 100644 index 0000000..afb2e47 --- /dev/null +++ b/pages/battle.md @@ -0,0 +1,5 @@ +tags:: glossary + +- single conflict between 2 or more [fleets]([[fleet]]) of [units]([[unit]]) +- + - \ No newline at end of file diff --git a/pages/companies.md b/pages/companies.md new file mode 100644 index 0000000..0c2919b --- /dev/null +++ b/pages/companies.md @@ -0,0 +1,4 @@ +tags:: glossary + +- employ [[pops]] and produce [resources]([[resource]]) +- this is kind of a unification of the "districts" and the "buildings" from stellaris \ No newline at end of file diff --git a/pages/contents.md b/pages/contents.md new file mode 100644 index 0000000..3cf20d5 --- /dev/null +++ b/pages/contents.md @@ -0,0 +1 @@ +- \ No newline at end of file diff --git a/pages/empire.md b/pages/empire.md new file mode 100644 index 0000000..59ab724 --- /dev/null +++ b/pages/empire.md @@ -0,0 +1,5 @@ +tags:: glossary + +- Everything under the control of a single player or AI entity in this game +- ## Players' Perspective + - Empires don't start out with particular traits or civics or anything, blank slate you acquire [[modifiers]] over time. this way empire creation isn't a pain in the ass but you still get to be who you wanna be \ No newline at end of file diff --git a/pages/energy credits.md b/pages/energy credits.md new file mode 100644 index 0000000..85415b6 --- /dev/null +++ b/pages/energy credits.md @@ -0,0 +1,3 @@ +tags:: glossary, resource + +- the primary form of currency used throughout the galaxy \ No newline at end of file diff --git a/pages/epoch.md b/pages/epoch.md new file mode 100644 index 0000000..0faaad8 --- /dev/null +++ b/pages/epoch.md @@ -0,0 +1,8 @@ +tags:: glossary, architecture + +- A single iteration of a multiplayer world. +- When an epoch is started, no empires except primitives will exist. +- Players will need to spawn in with a fresh starter empire, and build up from there. +- The lengths of epochs should be **pre-determined** and is recommended to last around 1-3 months + of wall-clock time. +- \ No newline at end of file diff --git a/pages/events.md b/pages/events.md new file mode 100644 index 0000000..4f64396 --- /dev/null +++ b/pages/events.md @@ -0,0 +1,7 @@ +tags:: glossary + +- closely translated from stellaris's "events" and "situations" +- i feel like this should probably follow some kind of "template" system where there are event templates and then specific instances of a particular event +- events have multiple stages, like situations. there's certain conditions that will trigger either advancing forward or backwards +- [[mods]] can add events? +- \ No newline at end of file diff --git a/pages/frontend.md b/pages/frontend.md new file mode 100644 index 0000000..dad207c --- /dev/null +++ b/pages/frontend.md @@ -0,0 +1,2 @@ +- react app lol +- \ No newline at end of file diff --git a/pages/glossary.md b/pages/glossary.md new file mode 100644 index 0000000..54814c4 --- /dev/null +++ b/pages/glossary.md @@ -0,0 +1,3 @@ +exclude-from-graph-view:: true + +- \ No newline at end of file diff --git a/pages/hyperlane.md b/pages/hyperlane.md new file mode 100644 index 0000000..0db506b --- /dev/null +++ b/pages/hyperlane.md @@ -0,0 +1,4 @@ +tags:: glossary + +- things that go between [[star system]]s +- \ No newline at end of file diff --git a/pages/map generation.md b/pages/map generation.md new file mode 100644 index 0000000..7e1629d --- /dev/null +++ b/pages/map generation.md @@ -0,0 +1,7 @@ +tags:: architecture + +- +- because of the nature of being able to add other empires later, we should generate a map filled with [star systems]([[star system]]) and [hyperlanes]([[hyperlane]]) +- choose several of the core star systems and generate [primitive empires]([[primitive empire]]) + - over the course of the game runtime, more [primitive empires]([[primitive empire]]) will spawn in the next [[progression ring]] +- generate naturally occurring [wormholes]([[wormhole]]) \ No newline at end of file diff --git a/pages/metric.md b/pages/metric.md new file mode 100644 index 0000000..419fc34 --- /dev/null +++ b/pages/metric.md @@ -0,0 +1,2 @@ +- data structure attributes: + - readonly? - whether or not this is something directly influenced by the player or not \ No newline at end of file diff --git a/pages/metrics db.md b/pages/metrics db.md new file mode 100644 index 0000000..2a864be --- /dev/null +++ b/pages/metrics db.md @@ -0,0 +1,7 @@ +tags:: architecture + +- everything that can possibly be a [[metric]] tracked in one place +- every [[metric]] also has “attributes”, the same way a db has columns, so we can do things like query for "all attack % of this particular empire" + - can uniformly apply [[modifiers]] like "all of these metrics queried take a 15% debuff" +- tracking metrics also gives us stats options, for example if ur [[energy credits]] are being combined from multiple sources each of them could be tracked separately +- every entry could also contain a closure along with the current amount, so the new value at any [[tick]] can just be determined by running the closure \ No newline at end of file diff --git a/pages/mods.md b/pages/mods.md new file mode 100644 index 0000000..5a11d97 --- /dev/null +++ b/pages/mods.md @@ -0,0 +1,3 @@ +tags:: glossary + +- should the content in the base game be designed like a mod? \ No newline at end of file diff --git a/pages/notification system.md b/pages/notification system.md new file mode 100644 index 0000000..76e0a8c --- /dev/null +++ b/pages/notification system.md @@ -0,0 +1,3 @@ +tags:: architecture + +- system to handle events \ No newline at end of file diff --git a/pages/planet.md b/pages/planet.md new file mode 100644 index 0000000..5afd86b --- /dev/null +++ b/pages/planet.md @@ -0,0 +1,4 @@ +tags:: glossary + +- has [[companies]] that employ [[pops]] +- \ No newline at end of file diff --git a/pages/pops.md b/pages/pops.md new file mode 100644 index 0000000..00df742 --- /dev/null +++ b/pages/pops.md @@ -0,0 +1,6 @@ +tags:: glossary + +- short for "population" +- the overall amount of pops on a [[planet]] is tracked by a number, but individual pops are not tracked +- instead, [[job]] information is determined by proportion, and so is the output from those jobs +- things like [[population growth speed]] will affect a planet's overall amount of pops as a whole \ No newline at end of file diff --git a/pages/population growth speed.md b/pages/population growth speed.md new file mode 100644 index 0000000..962bc6f --- /dev/null +++ b/pages/population growth speed.md @@ -0,0 +1,3 @@ +tags:: glossary, metric + +- \ No newline at end of file diff --git a/pages/primitive empire.md b/pages/primitive empire.md new file mode 100644 index 0000000..1b563a4 --- /dev/null +++ b/pages/primitive empire.md @@ -0,0 +1,4 @@ +tags:: empire, glossary + +- Low-level AI civilizations that exist for users to be able to plunder and take over. +- These civilizations will scale over time and get buffed along with the players in its [[progression ring]] \ No newline at end of file diff --git a/pages/progression ring.md b/pages/progression ring.md new file mode 100644 index 0000000..16f4c72 --- /dev/null +++ b/pages/progression ring.md @@ -0,0 +1,3 @@ +tags:: glossary + +- \ No newline at end of file diff --git a/pages/science ship.md b/pages/science ship.md new file mode 100644 index 0000000..4ae30de --- /dev/null +++ b/pages/science ship.md @@ -0,0 +1,5 @@ +tags:: glossary, unit + +- an exploration unit +- responsibilities: + - survey star systems to determine what's inside \ No newline at end of file diff --git a/pages/star system.md b/pages/star system.md new file mode 100644 index 0000000..e36324e --- /dev/null +++ b/pages/star system.md @@ -0,0 +1,7 @@ +tags:: glossary + +- a single cell on the map +- contains [planets]([[planet]]) +- attributes: + - empire-local: + - explored (boolean) - whether this star system has been explored \ No newline at end of file diff --git a/pages/strategic resources.md b/pages/strategic resources.md new file mode 100644 index 0000000..5f4c8ce --- /dev/null +++ b/pages/strategic resources.md @@ -0,0 +1,7 @@ +tags:: glossary, resource + +- these are some more advanced resources +- ## Ideas + - Could we have different species depend on different strategic resources (could be regional too?!), so that u have to actually trade with people and actually discover the techs for them + - Could autogenerate names for the strategic resources too so it’s not + - This also means the tech tree needs to be dynamically generated \ No newline at end of file diff --git a/pages/tech tree system.md b/pages/tech tree system.md new file mode 100644 index 0000000..d6c6096 --- /dev/null +++ b/pages/tech tree system.md @@ -0,0 +1,20 @@ +tags:: architecture + +- Tech tree contains techs, each of which has + - discovery requirement - what conditions are required to allow an empire to even know this tech exists? + - unlock requirement - what conditions are required to allow an empire to unlock this tech? + - activation cost - how much it costs to "activate" + - upkeep - how much per time unit it costs to keep the tech activated + - deactivation requirement - some techs may not be able to be deactivated + - deactivation cost - how much it costs to deactivate +- unlike in stellaris, resource allocation for tech tree items is not discrete, but you can allocate "research funds" to different projects +- also allow for auto-picking research projects based on prioritized fields of study + - for ex. if "voidcraft" is prioritized, projects related to voidcraft will be picked for funding +- no bullshit rolling for tech system +- Unlock structure + - You get 1 or maybe 2 layers “for free” – this is the stuff scientists are “obviously working on” + - With culture / arts / sci-fi authors, you can occasionally see really long-term techs (e.g. + Dyson Spheres), and work towards them + - Maybe make this pretty hard, so you’ll only have 1 or 2 “star trek techs” unlocked, but you get a research speed buff for working towards them + - Maybe have *some* rare techs gated on the same mechanism, so for some techs (balance + carefully!) you might not ever unlock them? \ No newline at end of file diff --git a/pages/tick system.md b/pages/tick system.md new file mode 100644 index 0000000..ef07258 --- /dev/null +++ b/pages/tick system.md @@ -0,0 +1,8 @@ +tags:: architecture + +- continuous?? + - there are discrete "snapshots" of time, and any point in time between 2 snapshots can be computed purely based on the previous snapshot and the elapsed time + - the timestamp of the next tick should also be able to be determined based on the previous snapshot, or by interrupts by user events + - this allows clients to interpolate the current state based on their "view" of the previous snapshot + - account for clock drift between clients / network jitter? -Sctoor + - #references {{video https://www.youtube.com/watch?v=GqhhFl5zgA0}} \ No newline at end of file diff --git a/pages/war exhaustion.md b/pages/war exhaustion.md new file mode 100644 index 0000000..962bc6f --- /dev/null +++ b/pages/war exhaustion.md @@ -0,0 +1,3 @@ +tags:: glossary, metric + +- \ No newline at end of file diff --git a/pages/war.md b/pages/war.md new file mode 100644 index 0000000..ffbc5c8 --- /dev/null +++ b/pages/war.md @@ -0,0 +1,10 @@ +tags:: glossary + +- conflicts between empires +- will have multiple [battles]([[battle]]) +- please not as restrictive as stellaris' + - change war goals lmao (with a cost) + - add new members to the war + - remove members from the war (with a cost) +- same from stellaris + - [[war exhaustion]] can still push you to be forced into peace (and also makes fighting worse in general) \ No newline at end of file diff --git a/pages/wormhole.md b/pages/wormhole.md new file mode 100644 index 0000000..ea788f1 --- /dev/null +++ b/pages/wormhole.md @@ -0,0 +1,3 @@ +tags:: glossary + +- wormholes only connect [star systems]([[star system]]) on the same [[progression ring]] \ No newline at end of file