Package Name: FARCASTER
Module: farcaster
Framework: Axion ObjService
Location: factory.service/package.farcaster/
FARCASTER is a turn-based tactical RPG inspired by XCOM, built as an Axion ObjService. Features include:
All endpoints under /farcaster/api/:
POST /game/new — Start new campaignGET /game/load/:campaign_id — Load campaignPOST /mission/start — Begin missionPOST /mission/action — Submit player actionGET /mission/state/:game_state_id — Get current stateGET /roster/:unit_id — Get character detailsSee ObjServiceTacticalRPG.yaml for full endpoint specification.
Three tables in gekkoridge.axion:
game_saves — Campaign state and rostergame_replays — Mission recordings with full action historygame_progression — Character progression, XP, permadeath trackingJSON-driven configuration:
data/classes/ — Character class definitions (4 files)data/abilities/abilities.json — Ability configurations (9 abilities)data/enemies/enemies.json — Enemy types (5 types)data/missions.json — Mission definitions (4 missions)data/maps/ — Map layoutsAction Points (AP):
Combat:
Classes:
Completed:
In Progress:
To Do:
from factory.service.package.farcaster import ObjServiceTacticalRPG
# In gateway initialization:
farcaster = ObjServiceTacticalRPG(
axion_gateway=gateway,
database=gateway.get_db_pool('gekkoridge'),
)
# Wire REST routes
gateway.register_service('farcaster', farcaster)
Run schema from ObjServiceTacticalRPG.yaml on gekkoridge.axion:
mysql -h 10.0.10.20 -u axion gekkoridge < schema.sql
curl -X POST http://localhost/farcaster/api/game/new \
-H "Content-Type: application/json" \
-d '{"player_name":"Commander","difficulty":"normal"}'
Located at ~/projects/farcaster/frontend/:
index.html — Canvas entry pointsrc/main.js — Pixi.js game application (450 LOC)src/api.js — REST API client (120 LOC)styles/ — CSS for HUD and menuscd ~/projects/farcaster/frontend
python -m http.server 8000
# Open: http://localhost:8000/index.html
Backend: ObjServiceTacticalRPG.py (Python)
Database: MariaDB (gekkoridge.axion)
Frontend: Pixi.js v5 (WebGL 2D)
Events: Axion EventBus
game:new, mission:start, mission:completeaction:resolved, unit:died, ability:usedSettings (from YAML):
settings:
api_base: /farcaster/api
data_root: factory.service/package.farcaster/data
difficulty_default: normal
mission_pool_size: 4
enemy_spawn_count: 3
Database Connection:
# Unit tests (Python)
pytest factory.service/package.farcaster/tests/ -v
# Integration tests (with Axion running)
curl -X POST http://localhost/farcaster/api/game/new \
-H "Content-Type: application/json" \
-d '{"player_name":"Test"}'
Internal use only. TechnoCore infrastructure.