pipeworks_mud_mapper.services
Service layer for PipeWorks MUD Mapper.
This module provides the business logic layer that sits between the UI (Dash callbacks) and the data models. Services are designed to be:
Framework-agnostic: No Dash imports - can be tested independently
Stateless: Operate on models passed as arguments
Focused: Each service has a single responsibility
Architecture
The service layer implements the “thin callback” pattern where Dash callbacks become simple orchestrators that:
Extract data from component state
Call service functions
Return updated state to components
This separation enables:
Unit testing without Dash test harnesses
Reuse in CLI tools or other interfaces
Clear boundaries between UI and business logic
Service Modules
- zone_service
File I/O operations: load, save, export, create new zones. Handles the two-file workflow (map files vs zone files).
- validation_service
Map validation: connectivity, exit consistency, language-direction conflicts. Returns structured warnings for UI display.
Usage
In a Dash callback:
from pipeworks_mud_mapper.services import zone_service
@app.callback(...)
def handle_save(map_data, filename):
map_file = MapFile.from_dict(map_data)
zone_service.save_map_file(map_file, Path(filename))
return "Saved successfully"
See also
-, -, -
Submodules
- pipeworks_mud_mapper.services.api_client
- pipeworks_mud_mapper.services.api_db_service
- pipeworks_mud_mapper.services.app_config
- pipeworks_mud_mapper.services.db_tools
- pipeworks_mud_mapper.services.description_validator
- pipeworks_mud_mapper.services.exit_utils
- pipeworks_mud_mapper.services.io_queue
- pipeworks_mud_mapper.services.map_db_service
- pipeworks_mud_mapper.services.ollama_assets
- pipeworks_mud_mapper.services.ollama_client
- pipeworks_mud_mapper.services.ollama_config
- pipeworks_mud_mapper.services.ollama_state
- pipeworks_mud_mapper.services.ollama_ui
- pipeworks_mud_mapper.services.state
- pipeworks_mud_mapper.services.template_service
- pipeworks_mud_mapper.services.validation_service
- pipeworks_mud_mapper.services.world_service
- pipeworks_mud_mapper.services.zone_service