The engine ships as 41 packages — the @flare-engine/* scope plus the
unscoped create-flare-app scaffolder — organized into the layers below. You install only
the layers you use — most apps pull the @flare-engine/engine umbrella plus @flare-engine/react.
L0Foundation
Zero-dependency primitives — math and events.
@flare-engine/eventsType-safe EventEmitter and Signal
@flare-engine/mathVec2, Rect, Transform, Color, easings, intersection tests
L1Core Runtime
The game loop, ECS world, clock, pooling, and coroutines.
@flare-engine/coreGameLoop, Clock, AppLifecycle, Pool, Coroutines
@flare-engine/ecsEntity-Component-System with archetype queries
L2System Modules
Per-frame systems — rendering, input, physics, audio, and assets.
@flare-engine/assetsAsset loading, sprite sheet parsing
@flare-engine/audioAudioManager, SFX pool, music crossfade
@flare-engine/inputInputManager, VirtualJoystick, gesture handling
@flare-engine/physicsAABB collision, spatial index, raycasting
@flare-engine/progressionMeta-progression primitives: upgrade tracks, drop-roll with pity, unlock DAG, tier resolution, collectible registry
@flare-engine/renderSpriteBatch (Skia Atlas), Camera2D, SpriteEffects
@flare-engine/shapesProcedural 2D shape primitives for Skia — atomic primitives + SVG path escape hatch, composable for fast game prototyping
Zero-dep Skia shape primitive — Layer 2 Systems per roadmap.md (not a UI/post-FX package).
@flare-engine/simulationContinuous-time dynamics: n-body gravity, Verlet integration, wave-packet ripples
L2.5Persistence & reliability
Storage, error handling, testing, localization, deep links, share, and accessibility.
@flare-engine/a11yAccessibility primitives — reduced motion, contrast tokens
@flare-engine/deep-linksURL → scene+params router with web history + native Linking adapters
@flare-engine/errorsReact error boundary, structured crash payload, pluggable crash transport
@flare-engine/localizationString tables, locale resolution, ICU-style plurals + interpolation
@flare-engine/shareScreenshot capture + cross-platform share sheet
@flare-engine/storagePersistent key/value storage with typed schema, migrations, save slots, and JSON import/export
@flare-engine/testingDeterministic World factory, fake Clock, mock InputManager, and scene snapshot helpers
L3Feature Modules
Scenes, animation, particles, tilemaps, debug, and genre packages.
@flare-engine/animationSprite animation, tweens, springs, timeline
@flare-engine/debugDev overlay, stats, entity inspector, time controls
@flare-engine/dialogueDialogue graph runtime — lines, choices, conditions, variables, text-over-time reveal
@flare-engine/particlesParticle emitter, pool, immediate-mode Skia rendering
@flare-engine/pathfindingA* grid pathfinding, Jump Point Search, and navmesh for 2D scenes and apps
@flare-engine/sceneScene manager, transitions, lifecycle
@flare-engine/tilemapTiled/LDtk parser, culled tilemap renderer
L3.5UI & post-processing
The themed UI kit and the Skia post-FX stack.
@flare-engine/postfxSkia RuntimeEffect post-processing: vignette, bloom, CRT, chromatic aberration, grayscale flash
@flare-engine/uiUI kit — themed primitives, focus navigation, flex layout resolver
L4Integration
React / React Native bindings and the umbrella entry point.
@flare-engine/engineumbrellaFlare Engine umbrella — convenience entry point, re-exports all packages
@flare-engine/reactGameView, hooks, VirtualJoystick, VirtualButton
@flare-engine/render-webCanvasKit-backed web renderer for @flare-engine/render frame-renderer
Web analog of @flare-engine/react — composes render + postfx via CanvasKit. Layer 4 per engine architecture.md (0.2.1 doc reconcile).
L5Tooling
CLIs and devtools — Node-side, off the device size budget.
@flare-engine/cliFlare engine CLI — pack-atlas, tiled-to-flare, new app scaffolder
@flare-engine/devtoolsDevtools partial — entity inspector, time scrub, pause/step
create-flare-appOne-shot scaffolder for Flare engine apps — `npm create flare-app@latest`
L6Platform integrations
Provider interfaces (leaderboards, achievements, IAP, analytics, haptics) and the concrete adapters built on them.
@flare-engine/achievementsAchievements provider interface (consumer-supplied adapter)
@flare-engine/analyticsAnalytics provider interface (consumer-supplied adapter)
@flare-engine/hapticsHaptics (tactile feedback) provider interface (consumer-supplied adapter)
Documented in api-specs.md but not yet in architecture.md's layer tables.
@flare-engine/iapIn-app purchase provider interface (consumer-supplied adapter)
@flare-engine/iap-revenuecatRevenueCat IAPProvider adapter for @flare-engine/iap
@flare-engine/leaderboardsLeaderboard provider interface (consumer-supplied adapter)
@flare-engine/ui-shopReusable ShopPanel, PaywallModal, and RestorePurchasesButton consuming IAPContext + EntitlementStore
How to read this
Section titled “How to read this”- Layer — packages are organized into layers; a package may depend only on lower layers (the downward-only rule). See Concepts → Architecture for the model.
- Exports — the count and a sample of each package’s public surface (its
src/index.tsbarrel). The@flare-engine/engineumbrella additionally re-exports the lower runtime layers. - Depends on / Peers — intra-engine dependencies and the external peer packages you supply (Skia, React Native, etc.).