Skip to content

Carry the authored [install] and [provides] tables from RFC 0035 #43

Description

@Maximilian-Nesslauer

ModMetadata carries InstallRootOverride, a single string, which is RFC 0031's [install].root and nothing else.
RFC 0035 replaced that table with a superset and added [provides] on a mod-loader.

Scope

  • [install] becomes a type of its own, replacing InstallRootOverride: root, target, path, manages, steps, uninstall. It shares the anchor enum with Carry the install descriptor from RFC 0035 into the release file #41 rather than defining a second one.
  • [provides], only on mod-loader: launch, content-dir, content-path. [provides.configure]: file, format, game-path, a closed enum with one member in spec_version = 1.
  • steps and uninstall are prose no manager may parse (rule 7), and absent is not empty (rule 8), so neither may default to an empty array.
  • RFC 0035's Errors table, minus its last row, which is stamp-time and stays with the index. Two rows cut against the rest of the model and are worth naming: an unrecognised anchor or format is invalid rather than ignored, because guessing would write files somewhere the author did not choose; and manages may not claim manifest.toml, which ModManifest.Save regenerates from the game's own list, destroying anything it did not write.
  • Storage DTO and mapper follow.

Not in scope: resolving an anchor to a real path and performing an install, and whether manages binds a manager or only informs it (content-manager-design#20).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:coreBorea.Core, the domain modelarea:storageBorea.Storage, persistence and TOMLdesign-repoBlocked on or waiting for a decision in mod-manager-design

    Type

    No type

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions