التوثيق

الألعاب

81 سلوكًا · std/behaviors

atoms

std-arcade-flow

Headless win/lose authority for the arcade play-for-tickets loop: owns only result. Listens SCORE_CHANGED (tickets + tokens) and sets result to won once tickets reach the target, lost when tokens run out first, else none. Renders nothing.

lolo
1 uses ArcadeFlow from "std/behaviors/std-arcade-flow"

الكيان: ArcadeFlowData (runtime)

السمات

السمةالأحداثيبثّ
ArcadeFlowSCORE_CHANGED, RESTARTGAME_END

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ArcadeFlowrunningbooleanRunning
ArcadeFlowticketsToWinnumberTickets To Win

std-arcade-play

Headless arcade play-economy mechanic: the SOLE writer of tokens + tickets + machines. Applies a PLAY_MACHINE intent (spends a token, rolls a pseudo-random ticket payout within a configured range, emits BURST + SCORE_CHANGED). Renders nothing.

lolo
1 uses ArcadePlay from "std/behaviors/std-arcade-play"

الكيان: ArcadePlayData (runtime)

السمات

السمةالأحداثيبثّ
ArcadePlayPLAY_MACHINE, RESTARTBURST, SCORE_CHANGED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ArcadePlaymachines[Machine]Machines
ArcadePlaymaxPayoutnumberMax Payout
ArcadePlayminPayoutnumberMin Payout
ArcadePlayrunningbooleanRunning
ArcadePlaystartTokensnumberStart Tokens

std-area-fill

the physical per-tick maximum — so teleports and respawns paint nothing) — height is linear interpolation of the config curve samples above the fill's baseline (the platformer body's leftSamp/rightSamp idiom). rateMode picks the rate: "area" (height × |dx|, default — fills fastest where the curve is tallest), "speed" (|dx| only, flat rate), or "ride" (|dx| only while the move reports skating — walking the same distance paints nothing). When a fill's filled reaches its target it flips reported and emits AREA_FILLED once (the shared entity carries the rest); each fill also stamps a frontier (x0 + span × min(1, filled/target)) so boards can shade the painted region left-to-right as the gauge grows. RESTART resets every live fill (re-arming the live entity set, so SET_FILLS-injected fills survive respawns). SET_FILLS replaces the fill set at runtime for boards that import their fills. Renders nothing; boards shade the painted region and read filled/frontier from the shared entity (the render authority).

lolo
1 uses AreaFill from "std/behaviors/std-area-fill"

الكيان: AreaFillData (runtime)

السمات

السمةالأحداثيبثّ
AreaFillBODY_MOVED, SET_FILLS, RESTARTAREA_FILLED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
AreaFillfills[AreaFill]Fills
AreaFillrunningbooleanRunning

std-audio-cue

swap them per game by rebinding this atom's config, never by hand-authoring a second audio layer.

lolo
1 uses AudioCue from "std/behaviors/std-audio-cue"

الكيان: AudioState (runtime)

السمات

السمةالأحداثيبثّ
AudioCueCUE, MUSIC, STOP_MUSIC, MUTE, UNMUTE, TOGGLE_MUTE, SET_VOLUME, RESTARTAUDIO_MUTED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
AudioCuebaseUrlstringBase Url
AudioCueinitialMusicstringInitial Music
AudioCueinitialMutedbooleanInitial Muted
AudioCueinitialVolumenumberInitial Volume
AudioCuemanifestMap<string,SoundEntry>Manifest

std-camera-rig

a dead-zone camera: inside deadzoneX/deadzoneY the axis holds, outside it lerps by stiffness — clamps the result to bounds, eases camZoom toward camTargetZoom the same way, and decays camShake toward 0 by shakeDecay. Intents: FOLLOW retargets from a moving body's x/y/vx (vx feeds camLead, the horizontal look-ahead), CUT snaps position+target instantly (no ease, for teleports/cutscenes), SET_ZOOM retargets zoom (clamped to minZoom/maxZoom), SHAKE sets camShake for a consumer to jitter with at bind time — this atom never writes shake into camX/camY itself, RESTART reseeds from config. Emits CAMERA_MOVED every tick. Renders nothing — a board binds its own canvas camera prop straight to camX/camY/camZoom.

lolo
1 uses CameraRig from "std/behaviors/std-camera-rig"

الكيان: CameraState (runtime)

السمات

السمةالأحداثيبثّ
CameraRigFOLLOW, CUT, SET_ZOOM, SHAKE, RESTARTCAMERA_MOVED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
CameraRigboundsCameraBoundsBounds
CameraRigdeadzoneXnumberDead Zone X
CameraRigdeadzoneYnumberDead Zone Y
CameraRigleadnumberLead
CameraRigmaxZoomnumberMax Zoom
CameraRigminZoomnumberMin Zoom
CameraRigrunningbooleanRunning
CameraRigshakeDecaynumberShake Decay
CameraRigstartCameraPosStart Position
CameraRigstiffnessnumberStiffness
CameraRigzoomnumberZoom

std-chase-ai

Headless chase-AI mechanic: enemies damage adjacent targets, else step toward the nearest target respecting tile passability and occupancy.

lolo
1 uses ChaseAi from "std/behaviors/std-chase-ai"

الكيان: ChaseState (runtime)

السمات

السمةالأحداثيبثّ
ChaseAiلا شيءBURST, UNITS_CHANGED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ChaseAigridHeightnumberGrid Height
ChaseAigridWidthnumberGrid Width
ChaseAirunningbooleanRunning
ChaseAitiles[Tile]Initial Tiles
ChaseAiunits[Unit]Initial Units

std-choice-gate

the pad-lock touch pattern): the correct option stamps the gate solved + chosen on the shared entity and emits CHOICE_CORRECT once (a solved gate never judges again, so the path stays open); a wrong option emits CHOICE_WRONG carrying the gate id, the chosen optionId, and the option's world position, so the board can bounce the player back and float the gate's hint (the board owns the bounce — the atom only reports). RESTART unsolves every live gate (re-arming the live entity set, so SET_GATES-injected gates survive respawns). SET_GATES replaces the gate set at runtime for boards that import their gates. Renders nothing; boards draw the option platforms and labels from the shared entity (the render authority). Corresponds to the design-sheet field(s): challenge, agency.

lolo
1 uses ChoiceGate from "std/behaviors/std-choice-gate"

الكيان: ChoiceGateData (runtime)

السمات

السمةالأحداثيبثّ
ChoiceGateBODY_MOVED, SET_GATES, RESTARTCHOICE_CORRECT, CHOICE_WRONG

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ChoiceGategates[ChoiceGate]Choice Gates
ChoiceGatereachXnumberReach X
ChoiceGatereachYnumberReach Y
ChoiceGaterunningbooleanRunning

std-coef-pad

the pad-lock touch pattern), stamps the pad applied on the shared entity and emits COEF_PAD_APPLIED carrying the pad position AND its mod (x0, x1, a, h, k), so the board can append the mod to the body authority's curveMods (std-platformer-body with curveModsEnabled) and hop the player onto the reshaped surface. When every pad is applied it emits COEF_PAD_SET_COMPLETED once. RESTART un-applies every live pad (re-arming the live entity set, so SET_PADS-injected pads survive respawns; the board clears curveMods alongside — the pad reports, the board owns the road). SET_PADS replaces the pad set at runtime for boards that import their pads. Renders nothing; boards draw the pads and read applied from the shared entity (the render authority).

lolo
1 uses CoefPad from "std/behaviors/std-coef-pad"

الكيان: CoefPadData (runtime)

السمات

السمةالأحداثيبثّ
CoefPadLockBODY_MOVED, SET_PADS, RESTARTCOEF_PAD_APPLIED, COEF_PAD_SET_COMPLETED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
CoefPadLockcoefPads[CoefPad]Coefficient Pads
CoefPadLockreachXnumberReach X
CoefPadLockreachYnumberReach Y
CoefPadLockrunningbooleanRunning

std-curve-fog

the atom listens BODY_MOVED and stamps fogX (the reveal horizon = player x + the region's lookAhead) onto the shared entity, and the board's render layer clips or ghosts every road sample past it, so the player must commit to jumps before the landing is visible and internalize where the function GOES (blowup, flattening, slow growth, divergence). Outside every region fogX sits at a large sentinel, i.e. fully revealed. Physics is untouched: the collider keeps the whole curve — the fog is purely visual. Renders nothing; boards clip their own curve/region samples against @entity.fogX (the render authority).

lolo
1 uses CurveFog from "std/behaviors/std-curve-fog"

الكيان: CurveFogData (runtime)

السمات

السمةالأحداثيبثّ
CurveFogBODY_MOVED, RESTARTلا شيء

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
CurveFogregions[CurveFogRegion]Fog Regions
CurveFogrunningbooleanRunning

std-dungeon-combat

Headless dungeon combat authority: owns the enemy roster, hero HP, and kill score. Bump-attacks damage enemies; monster ticks chase the hero and deal contact damage.

lolo
1 uses DungeonCombat from "std/behaviors/std-dungeon-combat"

الكيان: DungeonCombatData (runtime)

السمات

السمةالأحداثيبثّ
DungeonCombatATTACK, MONSTER_TICK, RESTARTBURST, DEFEATED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
DungeonCombatattackDamagenumberAttack Damage
DungeonCombatenemies[Unit]Initial Enemies
DungeonCombatgridHeightnumberGrid Height
DungeonCombatgridWidthnumberGrid Width
DungeonCombatpointsPerKillnumberPoints Per Kill
DungeonCombatrunningbooleanRunning
DungeonCombatstartHpnumberStart HP
DungeonCombattiles[Tile]Tiles

std-fx-narrative

Headless pedagogy→fx translator for game boards and learning shells: turns high-level narrative events into big transient screen-space or world-space text effects consumed by std-fx-particles / fx-overlay. Levels emit NARRATE { text, style } and get a correctly styled, centered (or positioned) floating text burst without hand-rolling particle structs. Tutorials emit TUTORIAL_SHOW and the atom forwards SHOW to a composed std-tutorial-overlay trait. Renders nothing; centralizes the FX vocabulary so every level's teaching text looks and behaves the same. Corresponds to the design-sheet field(s): feedback.

lolo
1 uses FxNarrative from "std/behaviors/std-fx-narrative"

الكيان: FxNarrativeData (runtime)

السمات

السمةالأحداثيبثّ
FxNarrativeNARRATE, TUTORIAL_SHOWBURST, SHOW

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
FxNarrativerunningbooleanRunning
FxNarrativestylesMap<string,StyleDef>Styles

std-fx-particles

stamping maxTtl (fade envelope) and bornAt (epoch ms, smooth render interpolation) when absent — decays each entry's ttl every tick, drops the dead ones, and clears on RESTART. Name-blind mechanism: the effect-kind vocabulary is consumer-declared (FxPreset tables at the render call sites). Composed onto a [runtime, shared] entity; renders nothing — the board/shell owns the single render authority (draw-fx-layer for space "world", fx-overlay for space "screen"). Corresponds to the design-sheet field(s): feedback, rewards.

lolo
1 uses FxParticles from "std/behaviors/std-fx-particles"

الكيان: FxState (runtime)

السمات

السمةالأحداثيبثّ
FxParticlesBURST, RESTARTلا شيء

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
FxParticlesdecayRatenumberDecay Rate
FxParticlesfx[Fx]Initial Fx
FxParticlesrunningbooleanRunning

std-fx-trail

appends a dot only when the body's speed exceeds minSpeed (standing still leaves no trail) and prunes dots older than ttl on the same pass, so no decay tick is needed and a stopped body's trail simply stops growing (the render side fades each dot by bornAt/ttl). RESTART clears. Renders nothing.

lolo
1 uses FxTrail from "std/behaviors/std-fx-trail"

الكيان: FxTrailData (runtime)

السمات

السمةالأحداثيبثّ
FxTrailBODY_MOVED, RESTARTلا شيء

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
FxTrailminSpeednumberMin Speed
FxTrailrunningbooleanRunning
FxTrailttlnumberTrail Ttl (ms)

std-gate-lock

stars, coins, keys) and flips every door whose cost is met, stamping open on the shared door rows and emitting GATE_OPENED for the first newly opened door (the shared entity is the render authority for the rest). While a closed door's rect contains the player it emits GATE_BLOCKED once per approach — re-arming only after the player steps out — so the board can answer with a PLACE back and a locked fx. RESTART re-locks every live door and zeroes the total (re-arming the live entity set, so SET_DOORS-injected doors survive respawns). SET_DOORS replaces the door set at runtime for boards that import their doors. Renders nothing; boards draw closed doors as bars/walls and open ones as gaps. Corresponds to the design-sheet field(s): challenge, rewards.

lolo
1 uses GateLock from "std/behaviors/std-gate-lock"

الكيان: GateLockData (runtime)

السمات

السمةالأحداثيبثّ
GateLockCOLLECT, BODY_MOVED, SET_DOORS, RESTARTGATE_OPENED, GATE_BLOCKED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
GateLockdoors[Door]Doors
GateLockreachMarginnumberReach Margin
GateLockrunningbooleanRunning

std-gather

Headless resource-gathering mechanic: owns features + wood + stone. Listens HERO_STEPPED and, when the hero lands on a wood/stone-type feature, increments the matching resource, removes the node, emits a BURST pickup particle, and emits RESOURCES so survival-flow can decide loss. Never writes units.

lolo
1 uses Gather from "std/behaviors/std-gather"

الكيان: GatherData (runtime)

السمات

السمةالأحداثيبثّ
GatherHERO_STEPPED, RESTARTBURST, RESOURCES

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
Gatherfeatures[Feature]Features
GatherrunningbooleanRunning
GatherstartStonenumberStart Stone
GatherstartWoodnumberStart Wood
GatherstoneTypestringStone Type
GatherwoodTypestringWood Type
GatheryieldPerNodenumberYield Per Node

std-gold

Headless gold-economy mechanic: the SOLE writer of gold. Listens a mine-hit signal and adds a fixed yield; emits GOLD_CHANGED. Renders nothing.

lolo
1 uses Gold from "std/behaviors/std-gold"

الكيان: GoldData (runtime)

السمات

السمةالأحداثيبثّ
GoldMineMINE_HIT, RESTARTGOLD_CHANGED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
GoldMinerunningbooleanRunning
GoldMinestartGoldnumberStart Gold
GoldMineyieldAmountnumberYield Amount

std-grid-tactics

Headless grid-tactics unit-authority: the SOLE writer of units. Applies MOVE/ATTACK/SPAWN/HEAL intents from any source (player, AI, production, or progression) and runs the enemy AI_TURN pipeline, emitting BURST hit-particles and UNITS_CHANGED survivor counts. Renders nothing.

lolo
1 uses GridTactics from "std/behaviors/std-grid-tactics"

الكيان: TacticsState (runtime)

السمات

السمةالأحداثيبثّ
GridTacticsMOVE, ATTACK, SPAWN, HEAL, AI_TURNBURST, UNITS_CHANGED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
GridTacticsattackDamagenumberAttack Damage
GridTacticsgridHeightnumberGrid Height
GridTacticsgridWidthnumberGrid Width
GridTacticsrunningbooleanRunning
GridTacticstiles[Tile]Tiles
GridTacticsunits[Unit]Initial Units

std-hero-nav

Headless single-hero navigation authority: the SOLE writer of units + movesLeft on objective boards. Applies a budget-limited MOVE intent (steps the hero one tile, spends a move, emits HERO_STEPPED) and an optional WANDER intent (random step for neutral NPCs). Renders nothing.

lolo
1 uses HeroNav from "std/behaviors/std-hero-nav"

الكيان: HeroNavData (runtime)

السمات

السمةالأحداثيبثّ
HeroNavMOVE, WANDER, RESTARTHERO_STEPPED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
HeroNavgridHeightnumberGrid Height
HeroNavgridWidthnumberGrid Width
HeroNavmoveBudgetnumberMove Budget
HeroNavrunningbooleanRunning
HeroNavtiles[Tile]Tiles
HeroNavunits[Unit]Initial Units

std-lives

BODY_HAZARD, BODY_FELL, PATROL_HIT — onto it) costs one life, respecting an invulnerability window so overlapping hazards can't chain-drain; losing a life emits LIFE_LOST plus RESPAWN with the current checkpoint (boards route RESPAWN to the body authority's PLACE), and losing the last emits GAME_OVER instead. Checkpoints advance automatically: BODY_MOVED crossing a configured checkpoint's atX moves the respawn point forward and emits CHECKPOINT_REACHED once per checkpoint (tracked by furthest atX reached, so checkpoints are ordered along the run). RESTART reseeds lives and respawn to the spawn. Renders nothing — HUDs read lives off the shared entity. Corresponds to the design-sheet field(s): challenge, feedback.

lolo
1 uses Lives from "std/behaviors/std-lives"

الكيان: LivesData (runtime)

السمات

السمةالأحداثيبثّ
LivesDAMAGE, BODY_MOVED, RESTARTLIFE_LOST, RESPAWN, GAME_OVER, CHECKPOINT_REACHED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
Livescheckpoints[Checkpoint]Checkpoints
LivesinvulnMsnumberInvulnerability Window (ms)
LivesmaxLivesnumberMax Lives
LivesrunningbooleanRunning
LivesspawnXnumberSpawn X
LivesspawnYnumberSpawn Y

std-loop-lock

either direction counts); when |swept| reaches turns × 2π the lock flips unlocked and emits LOOP_UNLOCKED once. Entering the band reseeds the angle so leaving and returning never jumps the sweep; progress is kept across exits, so a revolution can be completed in stages. RESTART re-locks every live lock (re-arming the live entity set, so SET_LOCKS-injected locks survive respawns). SET_LOCKS replaces the lock set at runtime for boards that import their locks. Renders nothing; boards draw the ring/chest and read swept from the shared entity (the render authority). Corresponds to the design-sheet field(s): challenge, rewards.

lolo
1 uses LoopLock from "std/behaviors/std-loop-lock"

الكيان: LoopLockData (runtime)

السمات

السمةالأحداثيبثّ
LoopLockBODY_MOVED, SET_LOCKS, RESTARTLOOP_UNLOCKED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
LoopLocklocks[LoopLock]Locks
LoopLockrunningbooleanRunning

std-market-flow

Headless win/lose authority for market-service boards: owns only result. Listens SERVICE_CHANGED (served + lost) and sets result to won when enough customers are served, lost when too many patience timers expire, else none. Renders nothing.

lolo
1 uses MarketFlow from "std/behaviors/std-market-flow"

الكيان: MarketFlowData (runtime)

السمات

السمةالأحداثيبثّ
MarketFlowSERVICE_CHANGED, RESTARTGAME_END

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
MarketFlowmaxLostnumberMax Lost
MarketFlowrunningbooleanRunning
MarketFlowtargetServednumberTarget Served

std-mesh-asset-art

SOLE writer of @entity.meshAssetArt: collects volumetric asset catalogs published on the bus (MESH_ASSET_PUBLISH { kind, states }) into one kind → (state → draw-group items of draw-mesh descriptors) map that 3D board frames select per-row per anim state. INIT seeds from config and emits MESH_ASSET_SYNC so already-mounted catalogs republish regardless of mount order; the SYNC self-hop re-applies the seed after sibling canvas stashes exist (Almadar_Runtime_Gaps.md R-INIT-SEED-REPAINT-RACE). The 3D twin of SvgAssetArtCollector. Renders nothing — render authority stays with the frame.

lolo
1 uses MeshAssetArt from "std/behaviors/std-mesh-asset-art"

الكيان: StdMeshAssetArt (runtime)

السمات

السمةالأحداثيبثّ
MeshAssetArtCollectorMESH_ASSET_PUBLISHMESH_ASSET_SYNC

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
MeshAssetArtCollectorseedArtMap<string,Map<string,[node]>>Seed Art

std-motion-body

thrust acceleration plus the board-wide bias field (biasAx/biasAy — the hill-force / wind / conveyor-belt channel, written only through the SET_BIAS intent) plus gravity feed velocity, damping bleeds it, maxSpeed caps it, velocity steps position, and the world walls clamp it (a clamped axis kills that axis's velocity). Intents: THRUST sets a body's acceleration (hold-to-push input: keydown pushes, keyup zeroes), IMPULSE kicks velocity instantly (jumps, d-pad nudges), PLACE teleports (spawns, curve-riding pins), SET_GRAVITY retunes the pull live, SET_BIAS steers the bias field, RESTART reseeds. Emits BODY_MOVED for the lead body (bodies[0]) every tick so boards that subscribe can react — boards that don't subscribe pay nothing. Renders nothing.

lolo
1 uses MotionBody from "std/behaviors/std-motion-body"

الكيان: MotionBodyData (runtime)

السمات

السمةالأحداثيبثّ
MotionBodyTHRUST, IMPULSE, PLACE, SET_GRAVITY, SET_BIAS, RESTARTBODY_MOVED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
MotionBodybodies[Body]Initial Bodies
MotionBodydampingnumberDamping
MotionBodygravitynumberGravity
MotionBodymaxSpeednumberMax Speed
MotionBodyrunningbooleanRunning
MotionBodyxMaxnumberRight Wall
MotionBodyxMinnumberLeft Wall
MotionBodyyMaxnumberCeiling
MotionBodyyMinnumberFloor

std-objective-flow

Headless win/lose authority for objective boards: owns only result. Listens PROGRESS (objectivesLeft + movesLeft) and sets result to won when every objective is reached, lost when the move budget runs out first, else none. Renders nothing. Corresponds to the design-sheet field(s): goals, feedback.

lolo
1 uses ObjectiveFlow from "std/behaviors/std-objective-flow"

الكيان: FlowState (runtime)

السمات

السمةالأحداثيبثّ
ObjectiveFlowPROGRESS, RESTARTGAME_END

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ObjectiveFlowrunningbooleanRunning

std-objective-reach

Headless reach-the-objective mechanic: owns features + score + objectivesLeft. Listens HERO_STEPPED and, when the hero lands on a target-type feature, scores it (optionally removing the model), emits a BURST pickup particle, and emits PROGRESS so round-flow can decide win/lose. Never writes units.

lolo
1 uses ObjectiveReach from "std/behaviors/std-objective-reach"

الكيان: ObjectiveState (runtime)

السمات

السمةالأحداثيبثّ
ObjectiveReachHERO_STEPPED, RESTARTBURST, PROGRESS

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ObjectiveReachfeatures[Feature]Features
ObjectiveReachpointsPerTargetnumberPoints Per Target
ObjectiveReachreachRadiusnumberReach Radius
ObjectiveReachremoveOnReachbooleanRemove On Reach
ObjectiveReachrunningbooleanRunning
ObjectiveReachstartScorenumberStart Score
ObjectiveReachtargetTypestringTarget Type

std-pad-lock

pads of later groups refuse to light until the current group finishes, so one sum must be finished before the next. When a group completes the trait emits PAD_GROUP_COMPLETED once for it (first newly completed group reports; the shared entity carries the rest); when every pad in the set is lit it stamps completed and emits PAD_SET_COMPLETED once. The lowest uncompleted group is stamped on the shared entity as currentGrp so boards can pulse exactly the live pads (0 = no group open / ungrouped pads). RESTART unlights every live pad and resets the set (re-arming the live entity set, so SET_PADS-injected pads survive respawns). SET_PADS replaces the pad set at runtime for boards that import their pads. Renders nothing; boards draw the pads and read lit from the shared entity (the render authority). Corresponds to the design-sheet field(s): challenge, mechanics.

lolo
1 uses PadLock from "std/behaviors/std-pad-lock"

الكيان: PadLockData (runtime)

السمات

السمةالأحداثيبثّ
PadLockBODY_MOVED, SET_PADS, RESTARTPAD_GROUP_COMPLETED, PAD_SET_COMPLETED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
PadLockpads[PadLock]Pads
PadLockreachXnumberReach X
PadLockreachYnumberReach Y
PadLockrunningbooleanRunning

std-patience

Headless customer-service mechanic: owns a stationary customer roster with per-customer patience. Decrements patience every tick, serves nearby customers on HERO_STEPPED (resets their patience + scores), and emits CUSTOMER_LOST when a timer expires. Never writes units.

lolo
1 uses Patience from "std/behaviors/std-patience"

الكيان: PatienceData (runtime)

السمات

السمةالأحداثيبثّ
PatienceHERO_STEPPED, RESTARTBURST, SERVICE_CHANGED, CUSTOMER_LOST

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
Patiencecustomers[Customer]Customers
PatiencerunningbooleanRunning
PatienceserveRadiusnumberServe Radius

std-patrol-hazard

cy = y + waveAmp·sin(2πt/wavePeriod from a per-row time accumulator — and the hit test and render read cy, so a waveAmp of 0 keeps the flat beat), tracks the player position off the body authority's BODY_MOVED, and emits PATROL_HIT once per contact — a per-patrol hit flag re-arms only after the player separates, so damage rules stay sparse (when two patrols connect on the same tick the first reports; the other reports on the next tick). Patrols live on a [runtime, shared] entity for the render layer (boards draw them as markers/sprites); damage, lives, and respawn stay downstream (std-lives) — this atom simulates, it never judges. SET_PATROLS replaces the live patrol set at runtime for boards that import their patrols; RESTART re-arms the live set, so injected patrols survive respawns. Renders nothing. Corresponds to the design-sheet field(s): challenge, dynamics.

lolo
1 uses PatrolHazard from "std/behaviors/std-patrol-hazard"

الكيان: PatrolState (runtime)

السمات

السمةالأحداثيبثّ
PatrolHazardBODY_MOVED, SET_PATROLS, RESTARTPATROL_HIT

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
PatrolHazardhitRadiusnumberHit Radius
PatrolHazardpatrols[Patrol]Patrols
PatrolHazardplayerSpawnXnumberPlayer Spawn X
PatrolHazardplayerSpawnYnumberPlayer Spawn Y
PatrolHazardrunningbooleanRunning

std-pickup

the platformer twin of grid std-gather. Listens BODY_MOVED and, when the player touches an uncollected feature (|dx| <= reachX, |dy| <= reachY of the feature center — the coef-pad touch idiom minus the grounded requirement, so airborne pickups work), stamps it collected on the shared entity and emits PICKED once per item (id, kind, position, glyph, message) plus COLLECT{total} with the running count (the event std-gate-lock already consumes). A feature carrying active: false is visible but NOT collectible (gated pickups — e.g. a star that only counts once the curve passes through it); FEATURES_ACTIVE{updates:[{id,active}]} flips gates in place without re-arming collected. When every feature is collected it emits PICKUP_SET_COMPLETED once. RESTART re-arms every feature and zeroes the count (re-arming the live entity set, so SET_FEATURES-injected features survive). SET_FEATURES replaces the collectible set at runtime for boards that import their features; ADD_FEATURES appends without disturbing the live set (mid-game gem drops). kind is board-defined vocabulary (star, boost, …) — this atom reports, boards judge. Renders nothing; boards draw the features and read collected from the shared entity. Corresponds to the design-sheet field(s): rewards.

lolo
1 uses Pickup from "std/behaviors/std-pickup"

الكيان: PickupData (runtime)

السمات

السمةالأحداثيبثّ
PickupBODY_MOVED, SET_FEATURES, ADD_FEATURES, FEATURES_ACTIVE, RESTARTPICKED, COLLECT, PICKUP_SET_COMPLETED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
Pickupfeatures[PickupFeature]Features
PickupreachXnumberReach X
PickupreachYnumberReach Y
PickuprunningbooleanRunning

std-platformer-body

a body moving in the gravity direction that overlaps a ground/platform tile lands on its anti-gravity face (vy zeroed, grounded set), while a body moving against gravity passes through, so jumping up through a platform and walking up a staircase both just work. The sign of gravity IS the vertical convention: positive pulls toward +y (screen boards, y down — sprite canvases), negative toward −y (math canvases, y up); jumps always fire against it. Geometry lives on the shared entity: config platforms/skateCurve/driftRegions seed entity.platforms/skateCurve/driftRegions on INIT, and SET_PLATFORMS / SET_SKATE_CURVE / SET_DRIFT_REGIONS replace them at runtime (RESTART keeps the live set, so boards that import geometry never lose it on a respawn). Intents: STEER sets horizontal velocity (dir −1/0/1 × moveSpeed, hold-to-run: keydown steers, keyup steers 0), JUMP kicks vertical velocity when grounded, PLACE teleports (spawns, hazard respawns), RESTART reseeds. Emits BODY_MOVED every tick for the render layer (boards that don't subscribe pay nothing), plus the sparse rule signals a board needs to score: BODY_JUMPED, BODY_LANDED (with impact speed), BODY_HAZARD (once per hazard entry, re-arms on exit), BODY_GOAL (same arming), BODY_FELL (once per fall past killY, re-armed by PLACE/RESTART). Drift regions: the driftRegions set lists axis-aligned rects each carrying a constant acceleration (ax, ay) applied with the same 0.033s dt whenever the body's center is inside (empty list = zero behavior change). Curve skating: when config.skate is on and the grounded body comes within skateSnap of the skateCurve surface, the body rides the curve — y snaps to the interpolated surface and tangential gravity (g·slope/(1+slope²)) accelerates vx, and the vertical velocity is the tangential projection (s = vx·cos θ, vy = s·sin θ — no discontinuous jumps at sample boundaries), so the body slides downhill along the graph itself and launches ballistically off its ends; jumping kicks free. Sparse BODY_SKATE_START/BODY_SKATE_END signals fire on engage/disengage so boards can layer fx. Lives, score, and win/lose stay downstream — this atom simulates, it never judges. Renders nothing. Corresponds to the design-sheet field(s): mechanics, dynamics.

lolo
1 uses PlatformerBody from "std/behaviors/std-platformer-body"

الكيان: PlatformerBodyData (runtime)

السمات

السمةالأحداثيبثّ
PlatformerBodySTEER, JUMP, PLACE, CURVE_MOD_ADD, CURVE_MOD_CLEAR_RANGE, SET_TUNING, SET_PLATFORMS, SET_SKATE_CURVE, SET_DRIFT_REGIONS, RESTARTBODY_MOVED, BODY_SKATE_START, BODY_SKATE_END, BODY_JUMPED, BODY_LANDED, BODY_HAZARD, BODY_GOAL, BODY_FELL, CURVE_MOD_CLEAR

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
PlatformerBodycurveModsEnabledbooleanCurve Mods Enabled
PlatformerBodydriftRegions[BodyDriftRegion]Drift Regions
PlatformerBodygravitynumberGravity
PlatformerBodyjumpStrengthnumberJump Strength
PlatformerBodykillYnumberKill Y
PlatformerBodymaxFallSpeednumberMax Fall Speed
PlatformerBodymoveSpeednumberMove Speed
PlatformerBodyplatforms[PlatformerPlatform]Platforms
PlatformerBodyrunningbooleanRunning
PlatformerBodyskatebooleanCurve Skating
PlatformerBodyskateCurve[PlatformerCurveSample]Skate Curve
PlatformerBodyskateMaxGapnumberSkate Max Gap
PlatformerBodyskateSnapnumberSkate Snap
PlatformerBodyspawnPlatformerBodySpawn Body
PlatformerBodyxMaxnumberRight Wall
PlatformerBodyxMinnumberLeft Wall

std-production

Headless unit-production mechanic: accrues productionPoints each turn (AI_TURN) and, on an affordable PRODUCE, emits a SPAWN intent for the grid-tactics authority to place a new unit. Owns only productionPoints (+ its spawn counter); never writes units directly.

lolo
1 uses Production from "std/behaviors/std-production"

الكيان: ProductionState (runtime)

السمات

السمةالأحداثيبثّ
ProducerAI_TURN, PRODUCESPAWN

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ProducerpointsPerTurnnumberPoints Per Turn
ProducerrunningbooleanRunning
ProducerspawnCostnumberSpawn Cost
ProducerspawnHealthnumberSpawn Health
ProducerspawnTeamstringSpawn Team
ProducerspawnUnitTypestringSpawn Unit Type
ProducerspawnXnumberSpawn X
ProducerspawnYnumberSpawn Y
ProducerstartPointsnumberStart Points

std-round-flow

Headless win/lose round-resolution mechanic: derives result (victory/defeat/none) from team survivor counts on each UNITS_CHANGED signal and emits GAME_END. Owns only result; boards own their own phase/turn. Renders nothing.

lolo
1 uses RoundFlow from "std/behaviors/std-round-flow"

الكيان: RoundState (runtime)

السمات

السمةالأحداثيبثّ
RoundFlowUNITS_CHANGEDGAME_END

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
RoundFlowrunningbooleanRunning

std-score

Headless scoring mechanic: awards points when the enemy survivor count drops on a UNITS_CHANGED signal. Owns only score (+ its kill baseline); renders nothing.

lolo
1 uses Score from "std/behaviors/std-score"

الكيان: ScoreState (runtime)

السمات

السمةالأحداثيبثّ
ScoreKeeperUNITS_CHANGEDلا شيء

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ScoreKeeperinitialEnemiesnumberInitial Enemies
ScoreKeeperpointsPerKillnumberPoints Per Kill
ScoreKeeperrunningbooleanRunning
ScoreKeeperstartScorenumberStart Score

std-survival-flow

Headless win/lose authority for the nature-survival board: owns only result. Listens RESOURCES (movesLeft) and sets result to lost when the move budget runs out before the camp is built; listens BUILD_CAMP (the render-gated win intent) and sets result to won. Renders nothing.

lolo
1 uses SurvivalFlow from "std/behaviors/std-survival-flow"

الكيان: SurvivalFlowData (runtime)

السمات

السمةالأحداثيبثّ
SurvivalFlowRESOURCES, BUILD_CAMP, RESTARTGAME_END

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
SurvivalFlowrunningbooleanRunning

std-svg-asset-art

SOLE writer of @entity.svgAssetArt: collects vector asset catalogs published on the bus (SVG_ASSET_PUBLISH { kind, states }) into one kind → (state → draw-group items) map that board frames select per-row per anim state. INIT seeds from config and emits SVG_ASSET_SYNC so already-mounted catalogs republish regardless of mount order; the SYNC self-hop re-applies the seed after sibling canvas stashes exist (Almadar_Runtime_Gaps.md R-INIT-SEED-REPAINT-RACE). Renders nothing — render authority stays with the frame.

lolo
1 uses SvgAssetArt from "std/behaviors/std-svg-asset-art"

الكيان: StdSvgAssetArt (runtime)

السمات

السمةالأحداثيبثّ
SvgAssetArtCollectorSVG_ASSET_PUBLISHSVG_ASSET_SYNC

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
SvgAssetArtCollectorseedArtMap<string,Map<string,[node]>>Seed Art

std-tutorial-autodemo

the organism maps DEMO_* to its own steering, so a demo cannot self-cancel through the board's input path.

lolo
1 uses TutorialAutodemo from "std/behaviors/std-tutorial-autodemo"

الكيان: AutoDemoData (runtime)

السمات

السمةالأحداثيبثّ
AutoDemoTUTORIAL_DEMO_START, TUTORIAL_DEMO_STOP, DEMO_CANCELDEMO_LEFT, DEMO_RIGHT, DEMO_JUMP, DEMO_STOP

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
AutoDemoscripts[DemoScript]Scripts

std-tutorial-overlay

title, a live previewTrait frame playing the mechanic via std-tutorial-autodemo (a bare game canvas, no shell chrome), one line of body copy, a step counter, and Back / Next / Skip — composed entirely from registered render types (stack + text + button + trait frame) into the overlay slot, so no new UI component is needed. autoShow opens it on INIT for first-time players; a board's help button re-opens it any time via SHOW (which rewinds to step one). DISMISS (or finishing the last step) marks the run done, clears the overlay, and emits TUTORIAL_DONE so the board can unpause or log. Steps are pure config — a board teaches a new mechanic by adding one { id, title, body, demoId } row plus a previewTrait binding. Corresponds to the design-sheet field(s): feedback, agency.

lolo
1 uses TutorialOverlay from "std/behaviors/std-tutorial-overlay"

الكيان: TutorialState (runtime)

السمات

السمةالأحداثيبثّ
TutorialEmptyPreviewلا شيءلا شيء
TutorialOverlayCLOSETUT_AUTO, TUT_NEXT, TUT_BACK, TUT_DISMISS, SHOW, TUTORIAL_DONE, TUTORIAL_DEMO_START, TUTORIAL_DEMO_STOP

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
TutorialOverlayautoShowbooleanAuto Show
TutorialOverlaypreviewTraittraitPreview trait
TutorialOverlaysteps[TutorialStep]Steps

std-velocity-gate

a failing move resets the hold. The first newly opened gate emits VELOCITY_GATE_OPENED (the shared entity carries the rest). Entering a closed INSTANT gate while NOT passing emits VELOCITY_GATE_DENIED once per approach — re-arming only after the player steps out — so the board can answer with a PLACE back and a hint fx; dwell gates never deny (a hot entry is fine — coming to rest inside is the point), a failed hold simply resets. RESTART re-closes every live gate (re-arming the live entity set, so SET_VGATES-injected gates survive respawns). SET_VGATES replaces the gate set at runtime for boards that import their gates. Renders nothing; boards draw the gate band/chest and read open/held from the shared entity (the render authority). Corresponds to the design-sheet field(s): challenge, mechanics.

lolo
1 uses VelocityGate from "std/behaviors/std-velocity-gate"

الكيان: VelocityGateData (runtime)

السمات

السمةالأحداثيبثّ
VelocityGateBODY_MOVED, SET_VGATES, RESTARTVELOCITY_GATE_OPENED, VELOCITY_GATE_DENIED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
VelocityGategates[VelocityGate]Gates
VelocityGatereachMarginnumberReach Margin
VelocityGaterunningbooleanRunning

std-xp

raising the threshold and emitting a HEAL reward the grid-tactics authority applies. Owns only xp/xpToNext/level (+ kill baseline); never writes units.

lolo
1 uses Xp from "std/behaviors/std-xp"

الكيان: XpState (runtime)

السمات

السمةالأحداثيبثّ
XpProgressionUNITS_CHANGEDHEAL

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
XpProgressionbaseXpToNextnumberBase XP To Next
XpProgressionhealTeamstringHeal Team
XpProgressioninitialEnemiesnumberInitial Enemies
XpProgressionlevelUpHealnumberLevel-Up Heal
XpProgressionrunningbooleanRunning
XpProgressionstartXpnumberStart XP
XpProgressionxpPerKillnumberXP Per Kill
XpProgressionxpToNextIncrementnumberXP To Next Increment

std-zone-card

name, concept, objective — for a while after every crossing. Listens BODY_MOVED and, when the player's x crosses into a different config zone, stamps the shared entity (zoneId, card, enteredAt) and emits ZONE_CHANGED carrying the card fields; the card self-clears ttlTicks BODY_MOVED ticks later (a per-move tick counter on the entity, so pauses at speed zero still age it out) and boards clear it early via CARD_DISMISS (renamed to a board-scoped progress event) on any mechanic completion. RESTART clears the card and the clock. Renders nothing; boards draw the card from the shared entity (the render authority).

lolo
1 uses ZoneCard from "std/behaviors/std-zone-card"

الكيان: ZoneCardData (runtime)

السمات

السمةالأحداثيبثّ
ZoneCardBODY_MOVED, CARD_DISMISS, RESTARTZONE_CHANGED

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
ZoneCardrunningbooleanRunning
ZoneCardttlTicksnumberTTL Ticks
ZoneCardzones[ZoneCardZone]Zones

organisms

std-arcade-board-3d

3D arcade-hall FRAME: composes hero-nav (free roam) + arcade-play (token/ticket economy) + fx-particles + arcade-flow (win/lose) onto one shared GameState with a single render authority. Games consume this molecule and supply only theme/assets/units/tiles/machines via config.

lolo
1 uses ArcadeBoard3d from "std/behaviors/std-arcade-board-3d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
HeroAuthorityلا شيءلا شيء
PlayEconomyلا شيءلا شيء
FxDecayلا شيءلا شيء
RoundGateلا شيءلا شيء
ArcadeIntentPLAY_AGAINMOVE, WANDER, PLAY_MACHINE, RESTART, TILE_CLICK, UNIT_CLICK, FEATURE_CLICK, CANCEL

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
HeroAuthoritygridHeightnumberGrid Height
HeroAuthoritygridWidthnumberGrid Width
HeroAuthoritymoveBudgetnumberMove Budget
HeroAuthorityrunningbooleanRunning
HeroAuthoritytiles[Tile]Tiles
HeroAuthorityunits[Unit]Initial Units
PlayEconomymachines[Machine]Machines
PlayEconomymaxPayoutnumberMax Payout
PlayEconomyminPayoutnumberMin Payout
PlayEconomyrunningbooleanRunning
PlayEconomystartTokensnumberStart Tokens
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
RoundGaterunningbooleanRunning
RoundGateticketsToWinnumberTickets To Win
ArcadeIntentassetManifestAssetManifestAsset Manifest
ArcadeIntentbgColorstringBg Color
ArcadeIntentcameraModestringCamera Mode
ArcadeIntentfeatures[Feature]Features
ArcadeIntentfxPresets[FxPreset]Fx Presets
ArcadeIntentgoalTextstringGoal Text
ArcadeIntentgridHeightnumberGrid Height
ArcadeIntentgridWidthnumberGrid Width
ArcadeIntenthowTextstringHow Text
ArcadeIntentmovementRangenumberMovement Range
ArcadeIntentscalenumberScale
ArcadeIntentticketsLabelstringTickets Label
ArcadeIntenttokensLabelstringTokens Label
ArcadeIntentunitScalenumberUnit Scale

std-crew-board-2d

2D multi-unit crew-management board FRAME: composes hero-nav (unit-by-id move authority, no combat) + fx-particles onto one shared GameState with a canvas-2d render and select/deselect/move intent. Games consume this molecule and supply only theme/assets/units/tiles via config.

lolo
1 uses CrewBoard2d from "std/behaviors/std-crew-board-2d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
CrewAuthorityلا شيءلا شيء
FxDecayلا شيءلا شيء
AnimClockلا شيءلا شيء
CrewIntentلا شيءMOVE, TILE_CLICK, UNIT_CLICK, CANCEL

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
CrewAuthoritygridHeightnumberGrid Height
CrewAuthoritygridWidthnumberGrid Width
CrewAuthoritymoveBudgetnumberMove Budget
CrewAuthorityrunningbooleanRunning
CrewAuthoritytiles[Tile]Tiles
CrewAuthorityunits[Unit]Initial Units
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
AnimClockframes[string]Frame names
CrewIntentassetManifestAssetManifestAsset Manifest
CrewIntentbackgroundAssetAssetBackground Asset
CrewIntentcancelIconAssetCancel Icon
CrewIntentcrewCountnumberCrew Count
CrewIntentcrewIconAssetCrew Icon
CrewIntentfeatures[Feature]Features
CrewIntentfxPresets[FxPreset]Fx Presets
CrewIntentgridHeightnumberGrid Height
CrewIntentgridWidthnumberGrid Width
CrewIntenthudBackgroundAssetAssetHUD Background Asset
CrewIntentmovementRangenumberMovement Range
CrewIntentoxygennumberOxygen
CrewIntentoxygenIconAssetOxygen Icon
CrewIntentprojectionstringProjection
CrewIntentshowMinimapbooleanShow Minimap

std-dungeon-board-2d

2D key-move dungeon-crawl board FRAME: composes hero-nav (key-move intent) + dungeon-combat (bump-attack, monster chase, hero HP) + objective-reach (exit/chest) + fx-particles + objective-flow (win) onto one shared GameState with a canvas-2d render. Games consume this molecule and supply only theme/assets/tiles/units/enemies/features via config.

lolo
1 uses DungeonBoard2d from "std/behaviors/std-dungeon-board-2d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
HeroAuthorityلا شيءلا شيء
Enemiesلا شيءلا شيء
Collectorلا شيءلا شيء
FxDecayلا شيءلا شيء
RoundGateلا شيءلا شيء
DungeonIntentلا شيءMOVE, ATTACK, MONSTER_TICK, MOVE_UP, MOVE_DOWN, MOVE_LEFT, MOVE_RIGHT, PLAY_AGAIN, RESTART

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
HeroAuthoritygridHeightnumberGrid Height
HeroAuthoritygridWidthnumberGrid Width
HeroAuthoritymoveBudgetnumberMove Budget
HeroAuthorityrunningbooleanRunning
HeroAuthoritytiles[Tile]Tiles
HeroAuthorityunits[Unit]Initial Units
EnemiesattackDamagenumberAttack Damage
Enemiesenemies[Unit]Initial Enemies
EnemiesgridHeightnumberGrid Height
EnemiesgridWidthnumberGrid Width
EnemiespointsPerKillnumberPoints Per Kill
EnemiesrunningbooleanRunning
EnemiesstartHpnumberStart HP
Enemiestiles[Tile]Tiles
Collectorfeatures[Feature]Features
CollectorpointsPerTargetnumberPoints Per Target
CollectorreachRadiusnumberReach Radius
CollectorremoveOnReachbooleanRemove On Reach
CollectorrunningbooleanRunning
CollectorstartScorenumberStart Score
CollectortargetTypestringTarget Type
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
RoundGaterunningbooleanRunning
DungeonIntentassetManifestAssetManifestAsset Manifest
DungeonIntentbackgroundAssetAssetBackground Asset
DungeonIntentdirectionAssetsDirectionAssetsDirection Assets
DungeonIntentfontFamilystringFont Family
DungeonIntentfxPresets[FxPreset]Fx Presets
DungeonIntentgridHeightnumberGrid Height
DungeonIntentgridWidthnumberGrid Width
DungeonIntenthudBackgroundAssetAssetHUD Background Asset
DungeonIntentscalenumberScale

std-market-board-3d

3D single-hero market-service board FRAME: composes hero-nav (hero movement) + patience (stationary customers + starve timers) + fx-particles + market-flow (win/lose) onto one shared GameState with a single render authority. Games consume this molecule and supply only theme/assets/units/customers via config.

lolo
1 uses MarketBoard3d from "std/behaviors/std-market-board-3d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
HeroAuthorityلا شيءلا شيء
Patienceلا شيءلا شيء
FxDecayلا شيءلا شيء
RoundGateلا شيءلا شيء
MarketIntentPLAY_AGAINMOVE, RESTART, TILE_CLICK, UNIT_CLICK, CANCEL

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
HeroAuthoritygridHeightnumberGrid Height
HeroAuthoritygridWidthnumberGrid Width
HeroAuthoritymoveBudgetnumberMove Budget
HeroAuthorityrunningbooleanRunning
HeroAuthoritytiles[Tile]Tiles
HeroAuthorityunits[Unit]Initial Units
Patiencecustomers[Customer]Customers
PatiencerunningbooleanRunning
PatienceserveRadiusnumberServe Radius
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
RoundGatemaxLostnumberMax Lost
RoundGaterunningbooleanRunning
RoundGatetargetServednumberTarget Served
MarketIntentassetManifestAssetManifestAsset Manifest
MarketIntentbgColorstringBg Color
MarketIntentcameraModestringCamera Mode
MarketIntentfeatures[Feature]Features
MarketIntentfxPresets[FxPreset]Fx Presets
MarketIntentgoalTextstringGoal Text
MarketIntentgridHeightnumberGrid Height
MarketIntentgridWidthnumberGrid Width
MarketIntenthowTextstringHow Text
MarketIntentlivesLabelstringLives Label
MarketIntentmaxLostnumberMax Lost
MarketIntentmovementRangenumberMovement Range
MarketIntentscalenumberScale
MarketIntentscoreLabelstringScore Label
MarketIntentunitScalenumberUnit Scale

std-objective-board-3d

3D single-hero objective board FRAME: composes hero-nav (units + move budget) + objective-reach (targets) + fx-particles + objective-flow (win/lose) onto one shared GameState with a single render authority. Games consume this molecule and supply only theme/assets/units/targets via config.

lolo
1 uses ObjectiveBoard3d from "std/behaviors/std-objective-board-3d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
HeroAuthorityلا شيءلا شيء
Collectorلا شيءلا شيء
FxDecayلا شيءلا شيء
RoundGateلا شيءلا شيء
HeroIntentPLAY_AGAINMOVE, WANDER, RESTART, TILE_CLICK, UNIT_CLICK, CANCEL

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
HeroAuthoritygridHeightnumberGrid Height
HeroAuthoritygridWidthnumberGrid Width
HeroAuthoritymoveBudgetnumberMove Budget
HeroAuthorityrunningbooleanRunning
HeroAuthoritytiles[Tile]Tiles
HeroAuthorityunits[Unit]Initial Units
Collectorfeatures[Feature]Features
CollectorpointsPerTargetnumberPoints Per Target
CollectorreachRadiusnumberReach Radius
CollectorremoveOnReachbooleanRemove On Reach
CollectorrunningbooleanRunning
CollectorstartScorenumberStart Score
CollectortargetTypestringTarget Type
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
RoundGaterunningbooleanRunning
HeroIntentassetManifestAssetManifestAsset Manifest
HeroIntentbgColorstringBg Color
HeroIntentcameraModestringCamera Mode
HeroIntentextraStats[HudStat]Extra Stats
HeroIntentfxPresets[FxPreset]Fx Presets
HeroIntentgridHeightnumberGrid Height
HeroIntentgridWidthnumberGrid Width
HeroIntentmovementRangenumberMovement Range
HeroIntentobjectiveLabelstringObjective Label
HeroIntentscalenumberScale
HeroIntentscoreLabelstringScore Label
HeroIntentunitScalenumberUnit Scale

std-platformer-board-2d

input forwarding (LEFT/RIGHT/STOP/JUMP → STEER/JUMP intents), goal scoring, hazard/pit lives with respawn, PLAY_AGAIN reset — physics, particles, and the win gate belong to the atoms. Games consume this organism and supply level geometry (platforms, in both BodyAuthority.platforms for collision and the render-side platforms knob), theme/assets, and physics feel via config/traitOverrides.

lolo
1 uses PlatformerBoard2d from "std/behaviors/std-platformer-board-2d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
BodyAuthorityلا شيءلا شيء
FxDecayلا شيءلا شيء
RoundGateلا شيءلا شيء
PlatformerIntentلا شيءLEFT, RIGHT, STOP, JUMP, PLAT_STEER, PLAT_JUMP, PLAT_PLACE, PLAT_GOAL, PLAT_HAZARD, PLAT_FELL, BURST, PROGRESS, GAME_END, RESTART, PLAY_AGAIN

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
BodyAuthoritycurveModsEnabledbooleanCurve Mods Enabled
BodyAuthoritydriftRegions[BodyDriftRegion]Drift Regions
BodyAuthoritygravitynumberGravity
BodyAuthorityjumpStrengthnumberJump Strength
BodyAuthoritykillYnumberKill Y
BodyAuthoritymaxFallSpeednumberMax Fall Speed
BodyAuthoritymoveSpeednumberMove Speed
BodyAuthorityplatforms[PlatformerPlatform]Platforms
BodyAuthorityrunningbooleanRunning
BodyAuthorityskatebooleanCurve Skating
BodyAuthorityskateCurve[PlatformerCurveSample]Skate Curve
BodyAuthorityskateMaxGapnumberSkate Max Gap
BodyAuthorityskateSnapnumberSkate Snap
BodyAuthorityspawnPlatformerBodySpawn Body
BodyAuthorityxMaxnumberRight Wall
BodyAuthorityxMinnumberLeft Wall
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
RoundGaterunningbooleanRunning
PlatformerIntentbackgroundAssetAssetBackground Asset
PlatformerIntentbackgroundImageAssetBackground Image
PlatformerIntentbgColorstringBg Color
PlatformerIntentclearTitlestringClear Title
PlatformerIntentdirectionAssetsDirectionAssetsDirection Assets
PlatformerIntentfxPresets[FxPreset]Fx Presets
PlatformerIntentgoalScorenumberGoal Score
PlatformerIntenthudBackgroundAssetAssetHUD Background Asset
PlatformerIntentlostTitlestringLost Title
PlatformerIntentplatforms[PlatformerPlatform]Platforms
PlatformerIntentplayerSpriteAssetPlayer Sprite
PlatformerIntentrespawnXnumberRespawn X
PlatformerIntentrespawnYnumberRespawn Y
PlatformerIntentstartLivesnumberStart Lives
PlatformerIntenttileSpritesMap<string,Asset>Tile Sprites
PlatformerIntentworldHeightnumberWorld Height
PlatformerIntentworldWidthnumberWorld Width

std-platformer-puzzle

platformer-body, pickup, objective-flow, choice-gate, fx-particles, fx-narrative, tutorial-overlay — as the pillars a level rebinds: agency (body), challenge (choice), goal (objective), reward (pickup), feedback (fx, narrative, tutorial). Levels rebind these authorities locally and add their own geometry, render, and math rules. Math targets and grade levels stay downstream in the domain package; this substrate is domain-agnostic.

lolo
1 uses PlatformerPuzzle from "std/behaviors/std-platformer-puzzle"

الكيان: PlatformerPuzzleData (runtime)

السمات

السمةالأحداثيبثّ
PlatformerPuzzleBodyلا شيءلا شيء
PlatformerPuzzlePickupلا شيءلا شيء
PlatformerPuzzleObjectiveلا شيءلا شيء
PlatformerPuzzleChoiceلا شيءلا شيء
PlatformerPuzzleFxلا شيءلا شيء
PlatformerPuzzleNarrativeلا شيءلا شيء
PlatformerPuzzleTutorialلا شيءلا شيء
PlatformerPuzzleNoopPreviewلا شيءلا شيء

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
PlatformerPuzzleBodycurveModsEnabledbooleanCurve Mods Enabled
PlatformerPuzzleBodydriftRegions[BodyDriftRegion]Drift Regions
PlatformerPuzzleBodygravitynumberGravity
PlatformerPuzzleBodyjumpStrengthnumberJump Strength
PlatformerPuzzleBodykillYnumberKill Y
PlatformerPuzzleBodymaxFallSpeednumberMax Fall Speed
PlatformerPuzzleBodymoveSpeednumberMove Speed
PlatformerPuzzleBodyplatforms[PlatformerPlatform]Platforms
PlatformerPuzzleBodyrunningbooleanRunning
PlatformerPuzzleBodyskatebooleanCurve Skating
PlatformerPuzzleBodyskateCurve[PlatformerCurveSample]Skate Curve
PlatformerPuzzleBodyskateMaxGapnumberSkate Max Gap
PlatformerPuzzleBodyskateSnapnumberSkate Snap
PlatformerPuzzleBodyspawnPlatformerBodySpawn Body
PlatformerPuzzleBodyxMaxnumberRight Wall
PlatformerPuzzleBodyxMinnumberLeft Wall
PlatformerPuzzlePickupfeatures[PickupFeature]Features
PlatformerPuzzlePickupreachXnumberReach X
PlatformerPuzzlePickupreachYnumberReach Y
PlatformerPuzzlePickuprunningbooleanRunning
PlatformerPuzzleObjectiverunningbooleanRunning
PlatformerPuzzleChoicegates[ChoiceGate]Choice Gates
PlatformerPuzzleChoicereachXnumberReach X
PlatformerPuzzleChoicereachYnumberReach Y
PlatformerPuzzleChoicerunningbooleanRunning
PlatformerPuzzleFxdecayRatenumberDecay Rate
PlatformerPuzzleFxfx[Fx]Initial Fx
PlatformerPuzzleFxrunningbooleanRunning
PlatformerPuzzleNarrativerunningbooleanRunning
PlatformerPuzzleNarrativestylesMap<string,StyleDef>Styles
PlatformerPuzzleTutorialautoShowbooleanAuto Show
PlatformerPuzzleTutorialpreviewTraittraitPreview trait
PlatformerPuzzleTutorialsteps[TutorialStep]Steps

std-survival-board-3d

3D single-hero survival board FRAME: composes hero-nav (units + move budget as energy) + gather (wood/stone resource nodes) + fx-particles + survival-flow (build-camp win / energy-out loss) onto one shared GameState with a single render authority. Games consume this molecule and supply only theme/assets/units/tiles/features/camp thresholds via config.

lolo
1 uses SurvivalBoard3d from "std/behaviors/std-survival-board-3d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
HeroAuthorityلا شيءلا شيء
Gatherلا شيءلا شيء
FxDecayلا شيءلا شيء
Flowلا شيءلا شيء
SurvivalIntentPLAY_AGAINMOVE, WANDER, RESTART, TILE_CLICK, UNIT_CLICK, CANCEL, BUILD_CAMP_PRESS, BUILD_CAMP

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
HeroAuthoritygridHeightnumberGrid Height
HeroAuthoritygridWidthnumberGrid Width
HeroAuthoritymoveBudgetnumberMove Budget
HeroAuthorityrunningbooleanRunning
HeroAuthoritytiles[Tile]Tiles
HeroAuthorityunits[Unit]Initial Units
Gatherfeatures[Feature]Features
GatherrunningbooleanRunning
GatherstartStonenumberStart Stone
GatherstartWoodnumberStart Wood
GatherstoneTypestringStone Type
GatherwoodTypestringWood Type
GatheryieldPerNodenumberYield Per Node
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
FlowrunningbooleanRunning
SurvivalIntentassetManifestAssetManifestAsset Manifest
SurvivalIntentbgColorstringBg Color
SurvivalIntentcameraModestringCamera Mode
SurvivalIntentcampStonenumberCamp Stone
SurvivalIntentcampWoodnumberCamp Wood
SurvivalIntentextraStats[HudStat]Extra Stats
SurvivalIntentfxPresets[FxPreset]Fx Presets
SurvivalIntentgridHeightnumberGrid Height
SurvivalIntentgridWidthnumberGrid Width
SurvivalIntentmovementRangenumberMovement Range
SurvivalIntentscalenumberScale
SurvivalIntentunitScalenumberUnit Scale

std-tactics-board-2d

2D player-controlled grid-tactics board FRAME: composes grid-tactics (units authority) + fx-particles + round-flow + a player-intent/render trait onto one shared GameState with a canvas-2d render. Games consume this molecule and supply only theme/assets/units via config.

lolo
1 uses TacticsBoard2d from "std/behaviors/std-tactics-board-2d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
TacticsAuthorityلا شيءلا شيء
FxDecayلا شيءلا شيء
RoundLogicلا شيءلا شيء
ScoreKeeperلا شيءلا شيء
AnimClockلا شيءلا شيء
VectorArtلا شيءلا شيء
PlayerIntentEND_TURNMOVE, ATTACK, AI_TURN, TILE_CLICK, UNIT_CLICK, CANCEL, ``

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
TacticsAuthorityattackDamagenumberAttack Damage
TacticsAuthoritygridHeightnumberGrid Height
TacticsAuthoritygridWidthnumberGrid Width
TacticsAuthorityrunningbooleanRunning
TacticsAuthoritytiles[Tile]Tiles
TacticsAuthorityunits[Unit]Initial Units
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
RoundLogicrunningbooleanRunning
ScoreKeeperinitialEnemiesnumberInitial Enemies
ScoreKeeperpointsPerKillnumberPoints Per Kill
ScoreKeeperrunningbooleanRunning
ScoreKeeperstartScorenumberStart Score
AnimClockframes[string]Frame names
VectorArtseedArtMap<string,Map<string,[node]>>Seed Art
PlayerIntentassetManifestAssetManifestAsset Manifest
PlayerIntentattackRangenumberAttack Range
PlayerIntentbackgroundAssetAssetBackground Asset
PlayerIntentextraAddonEventeventExtra Addon Event
PlayerIntentextraAddons[HudButton]Extra Addon Buttons
PlayerIntentextraStats[HudStat]Extra HUD Stats
PlayerIntentfeatures[Feature]Features
PlayerIntentfxPresets[FxPreset]Fx Presets
PlayerIntentgridHeightnumberGrid Height
PlayerIntentgridWidthnumberGrid Width
PlayerIntenthudBackgroundAssetAssetHUD Background Asset
PlayerIntentmovementRangenumberMovement Range
PlayerIntentprojectionstringProjection
PlayerIntentshowMinimapbooleanShow Minimap
PlayerIntentvectorUnitScalenumberVector Unit Scale

std-tactics-board-3d

3D player-controlled grid-tactics board FRAME: composes grid-tactics (units authority) + fx-particles + round-flow + a player-intent/render trait onto one shared GameState. Games consume this molecule and supply only theme/assets/units via config.

lolo
1 uses TacticsBoard3d from "std/behaviors/std-tactics-board-3d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
TacticsAuthorityلا شيءلا شيء
FxDecayلا شيءلا شيء
RoundLogicلا شيءلا شيء
VolumetricArtلا شيءلا شيء
PlayerIntentEND_TURNMOVE, ATTACK, AI_TURN, TILE_CLICK, UNIT_CLICK, CANCEL

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
TacticsAuthorityattackDamagenumberAttack Damage
TacticsAuthoritygridHeightnumberGrid Height
TacticsAuthoritygridWidthnumberGrid Width
TacticsAuthorityrunningbooleanRunning
TacticsAuthoritytiles[Tile]Tiles
TacticsAuthorityunits[Unit]Initial Units
FxDecaydecayRatenumberDecay Rate
FxDecayfx[Fx]Initial Fx
FxDecayrunningbooleanRunning
RoundLogicrunningbooleanRunning
VolumetricArtseedArtMap<string,Map<string,[node]>>Seed Art
PlayerIntentassetManifestAssetManifestAsset Manifest
PlayerIntentbgColorstringBg Color
PlayerIntentcameraModestringCamera Mode
PlayerIntentfeatures[Feature]Features
PlayerIntentfxPresets[FxPreset]Fx Presets
PlayerIntentgridHeightnumberGrid Height
PlayerIntentgridWidthnumberGrid Width
PlayerIntentlightingLighting3DLighting
PlayerIntentmeshUnitScalenumberMesh Unit Scale
PlayerIntentmovementRangenumberMovement Range
PlayerIntentpostPost3DPost Effects
PlayerIntentscalenumberScale
PlayerIntentunitScalenumberUnit Scale

std-worldmap-board-2d

2D isometric overworld-travel board FRAME: composes grid-tactics (units authority) + round-flow (win/lose) + gold + a player-intent/render trait onto one shared GameState with an isometric canvas-2d render. Games consume this molecule and supply theme/assets/units/tiles/features via config.

lolo
1 uses WorldmapBoard2d from "std/behaviors/std-worldmap-board-2d"

الكيان: GameState (runtime)

السمات

السمةالأحداثيبثّ
TacticsAuthorityلا شيءلا شيء
RoundLogicلا شيءلا شيء
GoldAuthorityلا شيءلا شيء
WorldMapIntentلا شيءHERO_SELECT, HERO_MOVE, ADVANCE_TURN, MOVE, ATTACK, MINE_HIT

مفاتيح الإعداد

السمةالمفتاحالنوعالتسمية
TacticsAuthorityattackDamagenumberAttack Damage
TacticsAuthoritygridHeightnumberGrid Height
TacticsAuthoritygridWidthnumberGrid Width
TacticsAuthorityrunningbooleanRunning
TacticsAuthoritytiles[Tile]Tiles
TacticsAuthorityunits[Unit]Initial Units
RoundLogicrunningbooleanRunning
GoldAuthorityrunningbooleanRunning
GoldAuthoritystartGoldnumberStart Gold
GoldAuthorityyieldAmountnumberYield Amount
WorldMapIntentassetManifestAssetManifestAsset Manifest
WorldMapIntentbackgroundAssetAssetBackground Asset
WorldMapIntentextraAddons[HudButton]Extra Addon Buttons
WorldMapIntentextraStats[HudStat]Extra HUD Stats
WorldMapIntentfeatures[Feature]Features
WorldMapIntentfontFamilystringFont Family
WorldMapIntentgoldIconAssetAssetGold Icon Asset
WorldMapIntentgridHeightnumberGrid Height
WorldMapIntentgridWidthnumberGrid Width
WorldMapIntenthudBackgroundAssetAssetHUD Background Asset
WorldMapIntentmovementRangenumberMovement Range
WorldMapIntentregionstringRegion
WorldMapIntentregionIconAssetAssetRegion Icon Asset
WorldMapIntenttravelIconAssetAssetTravel Icon Asset
WorldMapIntentturnIconAssetAssetTurn Icon Asset

مصانع الأنماط

سلوك ui-* واحد لكل نمط واجهة، مولَّد من سجل الأنماط مباشرة: مفاتيح إعداده هي خصائص النمط.

الاسمالوصف
ui-action-paletteActionPalette
ui-action-tileActionTile
ui-canvas-2dCanvas2d
ui-canvasCanvas
ui-choice-buttonChoiceButton
ui-control-buttonControlButton
ui-control-gridControlGrid
ui-dialogue-bubbleDialogueBubble
ui-draw-fx-layerDrawFxLayer
ui-draw-groupDrawGroup
ui-draw-meshDrawMesh
ui-draw-shape-layerDrawShapeLayer
ui-draw-shapeDrawShape
ui-draw-skinned-meshDrawSkinnedMesh
ui-draw-sprite-layerDrawSpriteLayer
ui-draw-spriteDrawSprite
ui-draw-text-layerDrawTextLayer
ui-draw-textDrawText
ui-game-audio-cueGameAudioCue
ui-game-audio-toggleGameAudioToggle
ui-game-hudGameHud
ui-game-menuGameMenu
ui-health-barHealthBar
ui-score-displayScoreDisplay
ui-sequence-barSequenceBar
ui-stat-badgeStatBadge
ui-state-graphStateGraph
ui-state-json-viewStateJsonView
ui-timer-displayTimerDisplay
ui-trait-slotTraitSlot
Orb

اللغة التي تكون فيها القاعدة هي البرنامج.

© 2026 المدار. ليوبليانا، سلوفينيا.