Skip to content

content authoring: drafts, entity publish model, shape-compatibility markers, authoring UI #627

Description

@zgeoff

Content authoring moves into the registry that #851 delivered: mutable drafts over the published append-only versions, an entity-level publish model, shape-compatibility markers for new mechanics, and an authoring UI — so a balance pass is authored, previewed, and published without touching the repo.

Player story

New monsters, items, and balance changes reach you in a steadier stream, because shipping them no longer waits on an engine release — the world grows between your sessions without you installing anything. A run you're in the middle of is never disturbed by a content drop: what you face and find stays exactly as it was when you began, and only your next activity picks up the new world, online or offline. In one sentence: content arrives on its own schedule while every run you play stays consistent from start to finish.

Scope

  • draft state over the registry: drafts are mutable, publishing mints an immutable version; write-once stays enforced at the schema layer
  • entity-level authoring model (a monster/item/affix is immutable once published; a nerf is a new revision) with the publish step compiling entities into the version's content document
  • each version carries a shape-compatibility marker: data publishes freely, but a new mechanic (a new field or behavior the interpreter must understand) still rides a deploy — interpretation code stays pinned by simVersion
  • authoring UI over drafts and publish, replacing the interim content:publish JSON-file script as the authoring path
  • the DB becomes the source of truth for published content: new versions never enter the repo; the migration's v1/v2 seed literals remain frozen genesis data

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/gamearea: simulation, aether, game systemsarea/servicesarea: backend services & contractsfeaturenew featurep2-mediumpriority: medium

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions