Package io.github.protasm.jvmud.engine


package io.github.protasm.jvmud.engine
Engine-owned JVMud runtime model.

This package contains the concepts that belong to JVMud itself rather than to LPC, a specific mudlib, Telnet hosting, or compiler internals. The subpackages are organized around concrete engine responsibilities, while the Eight Pillars of MUD describe the properties those responsibilities must support: interactive, text-only, multiplayer, world-based, persistent, temporal, player-present games.

io.github.protasm.jvmud.engine.world owns the world-based model: World, WorldRuntime, Place, Entity, Link, and Location. Places are linked locations; entities are contained by exactly one immediate location and may themselves contain other entities.

io.github.protasm.jvmud.engine.identity supports the multiplayer and player-present pillars. PlayerRecord represents the human or account-like controller, SessionRecord represents a connection context, and PersonaRecord represents the player's in-world manifestation.

Mudlib lifecycle hooks are represented by MudlibLifecycleEvent and registered through MudlibBoundary. The hook event names are JVMud-native; mudlibs map those events to their own LPC method names through boundary configuration. MudlibBoundaryConfigReader reads that boundary metadata from simple mudlib manifests. Mudlib behavior can be attached as an opaque MudlibProjection, but that projection does not define the engine ontology.

World time is deterministic by default. WorldScheduler owns scheduled work in ticks, while WorldClock is the wall-clock adapter that can advance a scheduler for a hosted world.

io.github.protasm.jvmud.engine.output keeps engine-owned text presentation separate from server transport code and mudlib-authored prose. Persistence is currently represented by the stable records in the world and identity packages; repository or storage-specific code can grow into its own package when the engine needs it.

Compiler and LPC compatibility layers adapt into these engine concepts instead of replacing them with legacy driver vocabulary. Generated-code support lives under io.github.protasm.jvmud.compiler.runtime; Telnet hosting lives under io.github.protasm.jvmud.instance and io.github.protasm.jvmud.transport; authored mudlib content lives in the repository's mudlib source trees.