How nbdor/elementsim works
ElementSim is an early-stage FastAPI service for medieval chemistry and crafting. Its only active user-facing workflow is requesting the root or health endpoint; the versioned API router is not mounted, and simulation, crafting, recipe discovery, and skill progression are documented as planned rather than implemented. Existing SQLAlchemy models describe elements, processes, recipes, and inventories, but no execution engine connects them. The graph reflects those declarations and the configured database session; planned capability nodes use the enclosing app path because their implementations are absent.
Main entry points: base.py ORM base · session.py DB sessions · main.py FastAPI app · config.py Application settings
Components 12
Service API
- FastAPI app
app/main.py - Application settings
app/core/config.py - Versioned router
app/api/v1/api.py
Crafting Domain
- Elements
app/models/element.py - Processes
app/models/process.py - Recipes
app/models/recipe.py - Inventory
app/models/inventory.py - Planned simulation
app
Persistence
- ORM base
app/db/base.py - DB sessions
app/db/session.py
Other components
- API caller
- Configured database
Connections 8
- API caller → FastAPI app: requests endpoint
- FastAPI app → Application settings: reads settings
- DB sessions → Application settings: reads connection settings
- DB sessions → Configured database: connects sessions
- Elements → ORM base: maps model
- Processes → ORM base: maps model
- Recipes → ORM base: maps model
- Inventory → ORM base: maps model