Skip to content

Define and enforce Properties vs SystemProperties contract for per-world entity type sets #278

Description

@PlagueHO

Summary: Define and enforce domain invariants where Properties are entity-type baseline fields independent of ruleset, and SystemProperties are ruleset-specific fields. Ensure this contract is applied consistently in per-world entity type set behavior.

Scope:

  1. Define domain invariants for Properties vs SystemProperties.
  2. Ensure world-bound entity type set/system context is immutable after world creation.
  3. Ensure runtime load-on-world-select applies the world-bound contract.
  4. Ensure validation distinguishes baseline vs system-specific fields.
  5. Ensure fallback behavior for unknown system fields protects baseline data.
  6. Ensure additive evolution preserves backward compatibility.

Acceptance Criteria:

  1. Properties is explicitly baseline entity-type data independent of system.
  2. SystemProperties is explicitly system-specific data.
  3. World assignment of entity type set/system context is immutable.
  4. Runtime loading and validation honor the split consistently.
  5. Baseline semantics remain stable across systems for same entity type.
  6. Documentation includes clear examples (for example population as baseline, proficiency as system-specific).

Out of scope:

  • Cross-world import/mapping.
  • Full registry authoring UX.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions