Design decisions
This page records decisions that are part of Definitive Starwind's intended product behavior or maintainability model. Future cleanup should not "fix" these merely because they differ from Morrowind or from an earlier build.
OpenMW is the target
The masterless build is designed and validated for OpenMW. Morrowind.exe is not a compatibility target.
This matters most for dialogue, where merge/load behavior can differ. OpenMW's effective result is the release oracle.
Definitive is one product, not a build mode matrix
The modern builder has one approved content graph. Historical Solo/Standalone/ TSI branches remain useful provenance but are not alternative outputs of the Definitive toolchain.
Star_Data is a stability boundary
Star_Data.omwaddon is not merely "everything except CELL and INFO." It is the
stable dependency/API surface for reusable Starwind records.
Records may remain in Starwind.omwaddon even when technically reusable if
they are still coupled to high-churn content or legacy scripts.
Legacy MWScript defaults to Starwind
Most SCPT records stay in Starwind.omwaddon because a large portion of the
MWScript implementation is expected to be removed or replaced with OpenMW Lua.
Putting that legacy corpus in Star_Data would make the supposedly stable
foundation churn throughout modernization.
Exceptions are possible for deliberately stable shared framework behavior, but they must be explicit.
LUAL and Lua migration
During active migration, most LUAL registrations/content Lua should also remain
on the Starwind side unless they form a deliberately public/stable framework.
The long-term goal is a small intentional shared Lua API rather than a dump of content scripts into Data.
GMST, MGEF, and SKIL are foundational
These record families are not reachability-pruned.
The absence of an obvious ordinary record reference does not prove that an engine-facing game setting, effect, or skill is unused.
Exact byte-identical physical duplicates may still be deduplicated because that operation does not decide the record is semantically unused.
FACT, REGN, and CLAS are manual-review families
These record types can be semantically important even when simple reachability looks weak:
- factions can participate in reactions, dialogue, player systems, or future content;
- regions can be reused for weather/pseudo-exterior behavior;
- classes may be made available to the player during chargen even if no current NPC uses them.
Automated deletion based only on "no current actor references it" is therefore not allowed.
There is one audited exception: Definitive preprocessing removes 25 non-playable classes whose NPC, dialogue, and script reference counts are all zero. The 18 playable Starwind chargen classes and every referenced non-playable class remain. This is an explicit reviewed source boundary, not an automated reachability rule.
Equipment enchantment capacity is normalized to 375
Definitive Starwind intentionally makes otherwise-unenchanted equipment broadly customizable.
This is not an attempt to preserve Morrowind balance. Player personalization is a product goal informed by long-term TSI operation and by the modding-oriented nature of the game.
Naboo is base Definitive content
Naboo was historically tied to TSI and was barely deployed, but it is considered part of modern base Starwind. The Definitive build brings it into the supported single-player/OpenMW corpus and subjects it to the same cleanup/validation as the older content.
Bing's Race Pack and Enhanced are base content
They are not optional historical extras in the new product. Bing is merged into Enhanced and both feed the canonical Patch merge.
MPRecords and Vvardenfell are excluded by product definition
Their absence is not a temporary build optimization. They are outside the approved Definitive corpus unless project policy changes explicitly.
Main quest must survive
Historical multiplayer operations intentionally removed pieces of Starwind's main quest. Definitive must preserve it. A dedicated regression guard exists because relying on memory or comments in old scripts is not sufficient.
Delete causes, not symptoms
When closure imports irrelevant vanilla data, the preferred repair is to remove or correct the causal stale reference/INFO/list/region edge rather than delete the imported target from the final plugin.
This principle produced cleaner fixes for dialogue-only actors, region sleep encounters, and dead faction dialogue.
Data split should be conservative about promotion
A reusable record can safely remain in Starwind while its dependencies are
still unstable. Moving content-specific or high-churn records into Star_Data
is harder to undo because downstream mods may begin depending on them.
Promotion into Data is therefore earned by stability and dependency safety.