Skip to content
CAI
Software that uses CAICheck a score

RafaelBarbosatec/bonfire

67.1

Adequate · 19 September 2026

28.1k

lines of production code

Dart

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Bonfire is a game development framework built on top of the Flame engine for Flutter, providing a comprehensive suite of tools for creating 2D games. It features a mixin-based architecture that simplifies the implementation of core game mechanics such as movement, collision, physics forces, and declarative AI behaviors. The system supports diverse gameplay styles through specialized player and enemy components, extensive map rendering capabilities including Tiled and Spritefusion integration, and utilities for UI, lighting, and procedural generation.

How it got here

2020–2021 — Bonfire 4.0 API-first architecture

30 changes.

This period centered on the Bonfire 4.0 release, which restructured the library around an API-first mixin architecture and a simplified, velocity-based movement system. The work introduced comprehensive new features including a behavior tree system, configurable lighting, parallax backgrounds, and a robust joystick input system, while establishing a clean public API surface. It also delivered a fully scaffolded example project demonstrating these capabilities with specialized player types, enemy AI, and interactive UI components.

2022–2023 — Bonfire 4.0 architecture and feature expansion

48 changes.

This period centered on the Bonfire 4.0 engine overhaul, introducing a mixin-based API structure, a declarative behavior system for AI, and robust support for infinite map rendering. It also significantly expanded the framework's capabilities with a new Scene Builder for scripted sequences, comprehensive input and gesture handling, and a rich library of NPC, enemy, and ally components. The work was complemented by extensive example applications demonstrating these new features across various game genres and mechanics.

2024–2026 — Map rendering and physics expansion

28 changes.

This period focused on expanding the engine's map rendering capabilities by adding comprehensive support for Tiled and Spritefusion formats, including infinite worlds and network loading. It also introduced advanced physics systems for forces and elastic collisions, alongside new input handling and map navigation features.

Features

Add Bonfire example app home page and navigation

The example application now includes a dedicated home page (\HomePage\) that serves as the central navigation hub for all Bonfire feature demos. This page presents a categorized menu (Map, Input, Player, etc.) allowing users to browse and launch specific examples such as Tiled maps, various input gestures, and player controllers. A \HomeRoute\ class has also been added to manage the root navigation route, enabling users to easily access the example gallery from the app's entry point.

example/lib/pages/home · high confidence

Add Flappy Bird game demo using Bonfire engine

This change introduces a complete Flappy Bird clone example built on the Bonfire game engine. The implementation includes the core game loop and UI in \lib/game.dart\ and \lib/main.dart\, featuring a bird component with gravity and tap-to-jump mechanics, a pipe generation system with collision detection, and a parallax scrolling background. A score overlay displays the number of pipes passed, and a 'Game Over' dialog allows players to reset the level.

_awesome/flappy\bird · high confidence

Add NPC Ally classes with life and animation support

The library now includes a new \Ally\ class and its variants (\RotationAlly\, \SimpleAlly\) in the \lib/npc/ally\ directory. These classes extend the existing \Npc\ base and mix in \WithLife\, allowing allies to have health points and configurable attack reception origins (e.g., only from enemies). \RotationAlly\ supports sprite animations for idle and run states with angle-based movement, while \SimpleAlly\ uses direction-based animations for multi-directional movement.

lib/npc/ally · high confidence

Add NPC component library with rotation and simple variants

Introduces a new \lib/npc\ module providing base and specialized NPC classes for game entities. The \Npc\ base class combines movement and vision mixins, while \RotationNpc\ adds sprite animation support for top-down perspectives, and \SimpleNpc\ provides directional animation capabilities for enemies.

lib/npc · high confidence

Add Spritefusion map data model classes

Introduces the \SpritefusionMap\, \SpritefusionMapLayer\, and \SpritefusionMapLayerTile\ data models in the \lib/map/spritefusion/model\ directory. These classes provide the structure for representing map data, including properties like tile size, map dimensions, layer names, collider settings, and tile coordinates, along with serialization support to and from JSON.

lib/map/spritefusion/model · high confidence

Add Spritefusion map example page

A new example page, SpritefusionPage, has been added to demonstrate rendering a map using the Bonfire game engine's Spritefusion integration. This page configures a BonfireWidget with a directional joystick controller and loads a map definition from the 'spritefusion/map.json' asset, setting a specific tile size and camera zoom level.

example/lib/pages/map/spritefusion · high confidence

Add color filter component for overlay effects

A new ColorFilterComponent has been introduced to apply color overlays to the game view. This component uses a GameColorFilter configuration to determine the overlay color and blend mode, rendering the effect on the canvas when enabled. It also supports animated transitions between colors via an animateTo method, allowing for smooth visual changes with configurable duration and easing curves.

_lib/color\filter · high confidence

Add forces demonstration example page

The example application now includes a new interactive demo page for physics forces. This page showcases various force behaviors, including acceleration, linear forces, resistance, and elastic collisions with bounciness, allowing users to visualize and test these mechanics within the Bonfire engine.

example/lib/pages/forces · high confidence

Add home content widget to example app

The example application now includes a new \HomeContent\ widget that displays an introductory section for the Bonfire framework. This widget features an animated GIF, a headline, and a descriptive text explaining that Bonfire is a game development framework for Flutter/Flame, along with a version indicator in the bottom-right corner.

example/lib/pages/home/widgets · high confidence

Add infinite world map example using Tiled patterns

The example app now includes an infinite map demo that uses a small Tiled pattern to create an endless world. As the player moves, new map chunks spawn seamlessly in all directions while distant chunks are unloaded, with the origin chunk remaining active. The demo also features a custom column object that is recreated for each chunk to make the repetition visible.

example/lib/pages/map/infinite · high confidence

Add mini-map widget for game overview

A new mini-map widget has been added to the game UI, providing a real-time overview of the game world. It displays tiles, the player, enemies, NPCs, and allies using customizable colors and rendering callbacks. The widget supports configurable size, zoom level, and styling (background, border, margins) and updates periodically to reflect the current camera position.

_lib/widgets/mini\map · high confidence

Add parallax background examples for Bonfire and Flame backends

The example app now includes dedicated pages demonstrating parallax scrolling backgrounds for both the Bonfire and Flame rendering backends. Users can view the Bonfire-specific implementation in \bonfire/bonfire\_parallax\_page.dart\ (using \loadCameraParallaxComponent\) and the Flame-specific implementation in \flame/parallax\_page.dart\ (using \loadParallaxComponent\), each configured with a tiled map, gravity, and joystick controls.

example/lib/pages/parallax · high confidence

Add platformer game example with player, enemies, and collectibles

This location introduces a complete platformer game example built on the Bonfire engine. It adds the core game loop and UI (main.dart, game.dart), a player character (FoxPlayer) with double-jump and tree-climbing mechanics, frog enemies that patrol and attack on contact, and collectible gems that trigger a win state. The entry also includes the Tiled map assets (platform\_map.tmj, tilesets) and sprite definitions required to render the level and entities.

_awesome/platform\game · high confidence

Add platformer player example with keyboard and joystick support

The example app now includes a new platformer player demo that demonstrates how to configure a player character with both joystick and keyboard input. The example uses the new \playerControllers\ parameter in \BonfireWidget\ to attach a directional joystick with an action button and a keyboard controller configured to accept the space key for jumping. The player character utilizes the \WithForces\ mixin for gravity-based physics and includes a custom hitbox for collision detection.

example/lib/pages/player/platform · high confidence

Add tap gesture interaction example

The input example now includes a tap gesture demo where a barrel decoration displays 'Touch me' and moves in a random direction when tapped.

example/lib/pages/input/tap · high confidence

Add top-down player rotation example

The example app now includes a new top-down player rotation demo. This addition introduces a \HumanTopdownPlayer\ component with specific sprite animations and collision handling, along with a corresponding page that configures the game world using a Tiled map and a directional joystick controller.

example/lib/pages/player/rotation · high confidence

Added Critter NPC example with collision and random movement

The example application now includes a new Critter NPC implementation in the shared NPC module. This entity demonstrates how to combine collision detection and random movement behaviors, automatically switching between wandering when the player is not observed and approaching the player when within vision range.

example/lib/shared/npc/critter · high confidence

Added Punnyworld example assets and maps

The Punnyworld example now includes new Tiled map files (compressed.tmj, embeded.tmj, pathfinding\_map.tmj, simple\_map.tmj) and an updated tileset definition (punyworld\_tileset.tsj). These assets provide pre-configured levels with specific layers for base terrain, decorations, and enemies, supporting features like pathfinding and object-based enemy placement within the example game.

example/assets/images/tiled/punnyworld · high confidence

Added QuadTree-based collision detection for high-density static environments

The library now includes a custom QuadTree broadphase implementation to optimize collision detection when a game contains many collidable entities, particularly static ones like walls or platforms. This is exposed via the \CustomHasQuadTreeCollisionDetection\ mixin for \FlameGame\ and the \CustomQuadTreeCollisionDetection\ class, which replace the standard broadphase logic. Users can initialize this system by calling \initializeCollisionDetection\ with map dimensions and optional tuning parameters (max objects, max levels, minimum distance), allowing for potentially better performance in complex scenes compared to the default collision detection method.

_lib/collision/quad\tree · high confidence

Added Solaria example map and tileset assets

The Solaria example now includes a new tilemap (\map.tmj\) and its associated tileset definition (\solaria\_tiles.tsj\). The map defines a 45x30 orthogonal grid with layers for base water, water, grass, and decoration, utilizing an 8x8 pixel tileset image (\solaria\_tiles.png\) containing 1680 tiles. This provides the visual data required to render the Solaria example scene.

example/assets/images/solaria · high confidence

Added Spritefusion world builder for map rendering

Introduced the \SpritefusionWorldBuilder\ class in the \lib/map/spritefusion/builder\ directory, which enables the construction of game worlds from Spritefusion map data. This builder reads map definitions, loads associated tileset images, and generates the corresponding layer structures and game components, including support for custom object builders and collision detection based on map configuration.

lib/map/spritefusion/builder · high confidence

Added Spritefusion world map implementation

A new \WorldMapBySpritefusion\ class has been introduced to support loading maps generated by the Spritefusion tool. This component integrates with the Bonfire engine by utilizing \SpritefusionWorldBuilder\ to parse map data and register game components, enabling users to render Spritefusion-based maps within the game world.

lib/map/spritefusion · high confidence

Added Tiled map example pages

The example app now includes two new pages demonstrating Tiled map integration: a local asset-based map view (TiledPage) and a network-loaded map view (TiledNetworkPage). Both pages configure the BonfireWidget with a joystick controller, a camera zoomed to fit 20 tiles, and a custom object builder that renders 'spikes' from the map data.

example/lib/pages/map/tiled · high confidence

Added Tiled tileset assets with collision and animation data

New Tiled tileset definition files (0x72\_DungeonTilesetII\_v1.json and tileset1.8.tsj) have been added to the example assets. These files define a dungeon tileset created with Tiled 1.9.0, including specific tile configurations for collision detection via object groups and tile animations, providing the necessary data for rendering and physics in the example application.

example/assets/images/tiled/tileset · high confidence

Added Wizard NPC example with interactive dialogue

The example now includes a Wizard NPC component that features a tap-to-interact gesture. When tapped, the camera animates to focus on the wizard and displays a multi-turn dialogue box (featuring a quote from Alice in Wonderland) using the game's TalkDialog system; the camera automatically returns to its previous zoom and position when the dialogue is closed.

example/lib/shared/npc/wizard · high confidence

Added character customization UI for the LPC mini-game example

The example application now includes a new character customization interface within the LPC mini-game. This update introduces a 'ButtonInterface' widget that provides an 'Edit Character' button, and a 'DialogCustomCharacter' widget that allows users to modify character appearance. Users can now select body types (Light, Brown, Skeleton, Orc), hair styles (Empty, Single, Curly, LongKNot, XLong), and toggle equipment slots (Helm, Chest, Leg, Gloves, Arms, Feet), with changes applied to the game sprite in real-time.

_example/lib/pages/mini\games/lpc/widgets · high confidence

Added drag and camera-movement input examples

The example app now includes two new input demonstration pages: one for handling drag gestures on game objects (using the \DragGesture\ mixin) and another for moving the camera via mouse or touch gestures (using the \MoveCameraUsingGesture\ mixin). These pages showcase how to integrate specific input behaviors into game decorations within the Bonfire framework.

_example/lib/pages/input/drag, example/lib/pages/input/move\_camera\mouse · high confidence

Added example page demonstrating multi-player keyboard and joystick controllers

The example application now includes a new player controllers page that demonstrates how to configure multiple input methods for different players. It shows a setup where the primary player uses a directional joystick, while a second player is controlled via keyboard inputs (both arrow keys and WASD), illustrating the library's capability to handle concurrent player controllers within a single BonfireWidget instance.

_example/lib/pages/player\controllers · high confidence

Added example shader implementations for basic and water effects

The example/shaders directory now includes GLSL fragment shader source files: baseShader.frag provides a basic texture mapping effect, while waterShader.frag and waterShaderV2.frag implement water distortion effects using noise textures, time-based scrolling, and color mixing. These files serve as reference implementations for Flutter shader effects within the example project.

example/shaders · high confidence

Added example sprite sheet utilities for characters and effects

The example application now includes a set of utility classes in the shared utilities folder to manage sprite animations for various game entities. New files define sprite sheets for the player (knight), enemies (goblin), NPCs (critter, wizard), and generic characters (person), providing pre-configured idle and run animations. Additionally, a common sprite sheet utility was added to load visual effects such as explosions, attack effects, and environmental items like chests, torches, and potions, simplifying asset management in the example.

example/lib/shared/util · high confidence

Added large example Tiled map asset

The example assets now include a new large map file (bigMap.json) created with Tiled, providing a more complex test case for map rendering and layer handling within the example application.

example/assets/images/tiled · high confidence

Added lighting example page with torch support

The example application now includes a dedicated lighting demonstration page. This page renders a map using the Bonfire engine with a dark ambient lighting overlay and registers a custom 'torch' map object. The torch is implemented as an animated game decoration that emits a pulsing, semi-transparent orange light, allowing users to see how dynamic lighting effects interact with game objects in the example.

example/lib/pages/lighting · high confidence

Added mouse input demonstration example

The example application now includes a new page demonstrating mouse input handling. This page renders a barrel component that visually displays real-time mouse screen position, click events (both on the component and the screen), and scroll delta, allowing users to see how mouse interactions are captured and reported within the game engine.

example/lib/pages/input/mouse · high confidence

Added path-finding example page with human-controlled player

The example app now includes a dedicated path-finding demo accessible via the '/path-finding' route. This page loads a specific Tiled map ('punnyworld/pathfinding\_map.tmj') and instantiates a HumanPathFinding player that mixes in the WithPathFinding capability. Users can tap anywhere on the screen to command the player to move to that position, with the path visualized using a stroke width of 2 and barrier detection configured to consider all barriers, not just visible ones.

_example/lib/pages/path\finding · high confidence

Added performance demo page with enemy spawner and FPS counter

A new performance demonstration page has been added to the example app. It renders a game world using a Tiled map and configures a spawner to generate up to 100 enemy instances, allowing users to visually assess rendering performance. The page also includes a custom interface overlay that displays the current frame rate and the live count of active enemies.

example/lib/pages/performance · high confidence

Added pirate player character to the random map mini-game example

The random map mini-game example now includes a new pirate player character. This addition introduces a \Pirate\ class that extends \SimplePlayer\ with collision handling, configured with a specific sprite sheet for idle and movement animations, a custom hitbox, and joystick-based movement (with diagonal movement disabled).

_example/lib/pages/mini\_games/random\map/player · high confidence

Added platform game assets and level maps

The example assets now include a complete set of tilemaps and tilesets for a platformer, featuring a parallax background map, a main platform map with enemy and gem object placements, and simpler test maps. The asset pack also introduces a props tileset and defines specific collectible items such as acceleration, linear, resistance, and bouncing gems within the level data.

example/assets/images/platform · high confidence

Added shader effect configuration example

The example app now includes a new shader demonstration page that applies a fragment shader to the game map layer. This feature introduces a configuration panel allowing users to adjust visual parameters such as speed, distortion strength, opacity, light range, and tone/light colors in real-time. The implementation uses a dedicated controller to manage configuration state and a game component to bind the shader to the map layer, updating it dynamically as settings change.

example/lib/pages/shader · high confidence

Added simple player example with joystick and keyboard controls

The example app now includes a new 'simple player' demo located at /simple-player. This feature demonstrates a basic player setup using the HumanPlayer component, which supports movement via both a directional joystick and keyboard input. The example page configures the BonfireWidget with a specific tiled map, camera zoom settings, and a blue background to showcase this control scheme.

example/lib/pages/player/simple · high confidence

Added top-down tiled map assets for examples

New Tiled map assets have been added to the example assets directory to support top-down game views. This includes a tileset definition (HouseTemplate\_Tileset.tsj) and two map files: a simple 10x10 orthogonal map (simple.tmj) featuring a tiled floor and border, and an infinite map structure (infinite\_map.tmj) that includes a floor layer and an object layer with column placements. These assets provide the visual data required for the new top-down and infinite world examples.

_example/assets/images/tiled/simple\topdown · high confidence

Adds camera-driven parallax scrolling for game backgrounds

Introduces CameraParallax and CameraParallaxComponent to enable parallax layers that move in sync with the game camera's position. This allows background elements to scroll at varying speeds relative to camera movement, creating a depth effect in the game world.

lib/parallax · high confidence

Example project scaffolded with Flutter tooling and linting

The example directory has been initialized as a standard Flutter application, including the generation of essential configuration files such as .gitignore, .metadata, analysis\_options.yaml (including flutter\_lints), and devtools\_options.yaml. This provides a clean, properly configured starting point for users to explore the library's capabilities without manual setup.

example · high confidence

Initial example project structure and assets

The example application has been initialized with a new entry point in \example/lib/main.dart\ that configures the app for landscape mode on non-web platforms and sets up the main material theme. Additionally, a new spritesheet utility class has been added for the platform mini-game, providing static accessors to load and sequence sprite animations for the player, enemies, and collectibles.

example/lib, example/lib/core · high confidence

Introduce base Enemy class and specialized enemy types

The library now provides a structured enemy hierarchy starting with a base \Enemy\ class that extends \Npc\ and includes life management via the \WithLife\ mixin. This base class is extended by three specialized implementations: \SimpleEnemy\ for 2D movement with directional animations, \RotationEnemy\ for top-down perspective enemies with angle-based movement and sprite animation loading, and \PlatformEnemy\ which adds platformer-specific capabilities like collision detection and jumping mechanics with configurable jump counts.

lib/npc/enemy · high confidence

Introduce new physics forces system for movement

A new \WithForces\ mixin and \ForcesApi\ have been added to the \lib/forces\ directory, providing a simpler, more realistic physics system for \SimpleMovement\. This system allows developers to apply gravity, wind, friction, and air drag to game objects, with support for both local and global force settings. The API includes methods to configure mass, drag coefficients, and custom forces, enabling more nuanced control over object movement and interaction with environmental factors.

lib/forces · high confidence

Introduce parallax background rendering system

Added a new background rendering system in the \lib/background\ directory, consisting of a \GameBackground\ base class and a \BackgroundImageGame\ component. This allows developers to define parallax images as backgrounds that automatically adjust their position based on the camera's movement and zoom level, supporting configurable offsets, scaling factors, and layer priorities.

lib/background · high confidence

Introduce turn-based strategy game with ally and enemy characters

Adds a new turn-based game experience built on the Bonfire engine, featuring a grid-based map with collision detection and pathfinding. Players control ally characters (Hero, Knight) and face enemy characters (Necromancer, Ghost), each with distinct melee and ranged attack capabilities. The game enforces a turn structure where each side can perform a limited number of actions before switching turns, with a UI overlay indicating the current turn and action count, and a win/lose condition triggered when one side is defeated.

_awesome/turn\game · high confidence

Introduces MapNavigator for animated map switching

A new MapNavigator widget and its supporting controller/provider have been added to the library, enabling applications to switch between different game maps with animated transitions. The MapNavigator widget accepts a map of named map builders and an initial map, managing state via a MapNavigatorController that exposes methods like toNamed and toMap for programmatic navigation. The implementation uses an AnimatedSwitcher to handle visual transitions between maps, with configurable duration and curve, and properly disposes of the controller to prevent resource leaks.

_lib/widgets/map\navigator · high confidence

Introduces specialized player types: PlatformPlayer, RotationPlayer, and SimplePlayer

The lib/player module now provides distinct player implementations to support different gameplay styles. PlatformPlayer adds platformer-specific jumping logic (with configurable jump counts) and dedicated animation replacement for platform sprites. RotationPlayer supports 360-degree movement via joystick angle and handles idle/run sprite transitions. SimplePlayer offers a basic top-down movement model with directional animations. A base Player class consolidates life, vision, and joystick movement capabilities shared across these types.

lib/player · high confidence

Introduction of BonfireWidget as the main game entry point

The lib/widgets directory now features BonfireWidget, a new Flutter StatefulWidget that serves as the primary integration point for the Bonfire engine. This widget accepts configuration for player controllers, game maps, UI interfaces, and visual settings such as background color and camera configuration. It abstracts the underlying game initialization by supporting both default and quad-tree collision strategies via BonfireCollisionConfig, and exposes lifecycle callbacks like onReady and onDispose to manage game state and overlays.

lib/widgets · high confidence

Introduction of Scene Builder for scripted game sequences

The lib/scene\_builder library now provides a system for executing scripted sequences of actions within the game. This includes a base SceneAction interface for defining custom behaviors, a SceneBuilderComponent that manages the execution flow of an ordered list of actions, and a set of pre-built action types (such as await, callback, camera control, delay, and movement) exported for immediate use. Users can now attach this component to their game to trigger complex, time-based event chains.

_lib/scene\builder · high confidence

Multi-scenario game now supports navigation between multiple maps

The multi-scenario mini-game now allows players to move between different map biomes. A new \maps.dart\ file defines the available maps (biome1, biome2) and configures map sensors that handle transitions, passing player position and direction to the next area. The \MultiScenario\ widget has been updated to use \MapNavigator\, which manages the switching between these maps and renders the \BonfireWidget\ with the appropriate map and player state for each scenario.

_example/lib/pages/mini\_games/multi\scenario · high confidence

New GameDecoration components for scene objects

The library now includes \GameDecoration\ and \GameDecorationWithCollision\ classes, allowing developers to add static or animated visual elements (like barrels or NPCs) to the game scene. \GameDecoration\ supports both static sprites and animations, while \GameDecorationWithCollision\ extends this to include optional shape hitboxes for map construction, such as those generated from Tiled maps.

lib/decoration · high confidence

New GameInterface and InterfaceComponent system for HUD elements

The \lib/game\_interface\ directory now introduces a dedicated hierarchy for rendering Heads-Up Display (HUD) elements such as life bars, stamina indicators, and settings. \GameInterface\ acts as the root container with high rendering priority, managing the lifecycle of child components. \InterfaceComponent\ provides a base class for interactive UI elements, supporting sprite-based visuals (with selected/unselected states) and tap gesture handling. \TextInterfaceComponent\ extends this to render dynamic text labels, automatically calculating its size based on the text content. This structure allows developers to easily add and manage interactive UI overlays within the game.

_lib/game\interface · high confidence

New Goblin enemy with behavior-driven combat logic

The example now includes a Goblin enemy class that demonstrates the new behavior system. It uses mixins for collision, life bars, and random movement, and implements a behavior tree to switch between chasing the player, attacking at range (fireball), attacking in melee, and wandering randomly based on vision radius and game state.

example/lib/shared/enemy · high confidence

New Joystick Input System

The \lib/joystick\ directory now contains a complete, new implementation of the game's joystick input handling, replacing previous versions. This includes \Joystick\ as the central controller, \JoystickDirectional\ for the main movement stick (supporting configurable size, alignment, and diagonal input), \JoystickAction\ for customizable button-like actions (supporting sprites, colors, and margins), and \JoystickMapExplorer\ to link joystick events to camera movement. Users will now interact with the game using this new, more flexible and configurable joystick system.

lib/joystick · high confidence

New Knight player character with ranged combat and dialogue

The example now includes a new Knight player character that supports both melee and ranged (fireball) attacks, with stamina management and a vision system that triggers a conversation dialog when an enemy is spotted. The fireball attack consumes stamina and projects a projectile with lighting effects, while the dialogue system pauses the game engine and displays a talk dialog with styled text and character sprites.

example/lib/shared/player · high confidence

New LPC mini-game example with character customization

Added a new mini-game example in the \lpc\ directory that demonstrates the Bonfire engine's player and animation capabilities. The example includes a \LPCGame\ widget configured with a joystick controller and a tiled map, alongside an \LPCPlayer\ entity that supports dynamic sprite composition. A key feature is the \CustomStatus\ system, which allows users to customize the player character's appearance (body type, hair, and equipment slots like helm, chest, and gloves) by compositing individual image assets into a single sprite sheet at runtime.

_example/lib/pages/mini\games/lpc · high confidence

New TalkDialog component for animated dialogue

Added a new \TalkDialog\ utility in \lib/util/talk\ that displays animated, typewriter-style dialogue using \Say\ objects. The dialog supports customizable text styling, character animation speed, background/person widgets, and alignment. It can be dismissed via tap or specific keyboard keys, and includes options for safe area usage and root navigator control.

lib/util/talk · high confidence

New Tiled model classes for collision, properties, and world data

The \lib/map/tiled/model\ directory now includes four new model classes: \TiledDataObjectCollision\ for storing collision shapes and types, \TiledItemTileSet\ for tile-specific attributes like animations and flips, \TiledObjectProperties\ for object metadata and hitboxes, and \WorldBuildData\ which aggregates the map, game components, and specific \mapChildren\ for correct layer ordering. These classes provide the underlying data structures for parsing Tiled map elements and managing their rendering and collision properties within the game engine.

lib/map/tiled/model · high confidence

New TiledWorldBuilder for handling Tiled map layers and objects

Added a new TiledWorldBuilder class that parses Tiled map data to construct game worlds. It supports orthogonal orientation maps and processes tile, object, and image layers, including handling layer types like 'above' and 'layered', dynamic tiles, and oversized tiles with bottom-left anchoring. The builder also allows registering custom object builders and supports rebuilding only object layers for infinite map scenarios.

lib/map/tiled/builder · high confidence

New TypeWriter widget for animated text display

A new TypeWriter widget has been added to the library, enabling text to appear character-by-character with a configurable speed. It supports rich text styling via TextSpan, handles text alignment, directionality, and overflow, and allows users to specify a callback when the animation completes or to skip to the end immediately.

lib/widgets/typewriter · high confidence

New behavior composition primitives and AI utilities

The \lib/behavior/behaviors\ directory now includes a comprehensive set of behavior classes to compose game logic. Structural primitives include \BList\ (sequential execution), \BParallel\ (concurrent execution), and \BSelector\ (priority-based selection). Execution control is handled by \BOnce\ (one-shot actions), \BInterval\ (periodic execution), \BCondition\ (conditional branching), \BAction\ (custom callbacks), and \BCustom\ (generic boolean logic). AI-specific behaviors include \BCanSee\ and \BCanSeeType\ (vision checks), \BMoveToComponent\ (targeted movement), \BRandomMovement\ (patrol logic), \BSeeAndMoveToTarget\ (chase/close behavior), and \BSeeAndPositioned\ (maintaining distance).

lib/behavior/behaviors · high confidence

New collision physics demo with realistic elastic and force settings

The example application now includes a dedicated collision page that demonstrates the updated physics engine. Tapping the screen spawns a collision component (circle or rectangle) configured with realistic elastic collision properties, including a bounciness of 0.85 and a minimum bounce velocity of 20.0. The component also utilizes the new force system with low friction (0.05), minimal drag (0.01), and moderate gravity (400), providing a more physically accurate interaction model for users testing collision behaviors.

example/lib/pages/collision · high confidence

New declarative behavior system for game components

Introduces a new behavior system that allows game components to define AI logic declaratively using a sequence of behaviors instead of imperative update loops. The system includes a base \Behavior\ class, a \BehaviorManager\ to handle frame-by-frame execution and sequencing, and a \UseBehavior\ mixin that integrates this manager into \GameComponent\s, enabling features like pausing, resuming, and runtime updates of behavior lists.

lib/behavior · high confidence

New direction animation system with 8-way support and render wrappers

The \lib/util/direction\_animations\ directory now contains a new set of utilities for managing character animations. This includes \SimpleDirectionAnimation\ and \PlatformAnimations\ classes that support 8-directional movement (idle/run in all 8 directions) and optional jump animations. The system introduces \RenderTransformWrapper\ to handle canvas transformations like flipping and center adjustment, allowing for more flexible sprite rendering. A new \SimpleAnimationEnum\ defines the available animation states. This change provides a more robust foundation for character movement and animation compared to the previous implementation.

_lib/util/direction\animations · high confidence

New elastic collision system with configurable bounce behaviors

A new elastic collision system has been introduced for game components, providing a simpler and more predictable alternative to the previous implementation. By mixing in \WithElasticCollision\, components gain realistic bounce behavior controlled by restitution (bounciness) and minimum velocity thresholds. The system includes an API for custom bounce callbacks and convenient extension methods to quickly apply preset behaviors such as rubber ball, basketball, or eternal bounce effects.

lib/collision/elastic · high confidence

New enemy behavior example with melee and ranged AI

The example application now includes a dedicated enemy demonstration page that showcases two distinct enemy types: a melee enemy that moves toward and attacks the player at close range, and a ranged enemy that maintains distance while attacking. These enemies utilize declarative AI behaviors (BSeeAndMoveToTarget and BSeeAndPositioned) from the Bonfire engine, featuring visual indicators like attack strokes and text labels, and are integrated into the app's navigation via a new route.

example/lib/pages/enemy · high confidence

New geometry shape classes and collision detection system

The library now includes a new geometry module featuring \CircleShape\, \RectangleShape\, and \PolygonShape\ classes that extend a common \Shape\ base. These shapes support position updates and rendering via the Flame engine. Additionally, a \ShapeCollision\ class has been introduced to handle collision detection between these different shape types, implementing algorithms for rectangle-rectangle, circle-circle, rectangle-circle, rectangle-polygon, circle-polygon, and polygon-polygon interactions.

lib/geometry · high confidence

New gesture handling mixins for drag, tap, pinch, and camera movement

The \lib/input/gestures\ directory now includes a new set of gesture-handling mixins (\DragGesture\, \TapGesture\, \PinchGesture\, and \MoveCameraUsingGesture\) along with a \GestureEvent\ helper class. These additions allow game components to easily handle user interactions such as dragging objects, tapping UI elements, performing pinch-to-zoom gestures, and panning the camera via touch or mouse input, providing a structured way to manage pointer events within the game world and HUD.

lib/input/gestures · high confidence

New health and stamina UI components for the example game

The example application now includes dedicated UI components to display and manage player health and stamina. A new \BarLifeInterface\ renders visual bars for life (with color-coded feedback) and stamina, driven by a singleton \BarLifeController\ that manages state and notifications. A corresponding \BarLifeWidget\ provides a text-based overlay of current and maximum values. These are integrated into the \KnightInterface\, which also demonstrates new scene action capabilities, such as cinematic camera movements and enemy control switching.

example/lib/shared/interface · high confidence

New infinite map rendering with camera-aware tile loading

The map system now supports infinite world maps that dynamically load and render tiles based on the camera's position and zoom level. A new \EmptyWorldMap\ class provides a minimal map implementation, while the \WorldMap\ class manages tile visibility using a quadtree and updates rendered tiles only when the camera moves or zoom changes, eliminating jank during navigation.

lib/map · high confidence

New interactive and environmental decoration components

Added six new decoration components for the example game: BarrelDraggable (a draggable barrel with physics and text), Chest (an interactive chest that detects nearby players and dispenses potions), ColumnDecoration (a static obstacle with collision), PotionLife (a floating health item that heals players on contact), Spikes (a hazard that damages entities on contact), and Torch (a lighting source with animated flame and pulse effects).

example/lib/shared/decoration · high confidence

New keyboard input example page

The example app now includes a new page demonstrating keyboard input handling within the game engine. This page renders a tiled map and places a barrel decoration that listens for keyboard events, displaying the typed characters in real-time on the screen.

_example/lib/pages/input/keyboard, example/lib/pages/map/terrain\builder · high confidence

New keyboard input system for game controls

Added a new keyboard input system (\lib/input/keyboard\) that allows players to control game characters using keyboard keys. The system includes a \Keyboard\ controller class that processes directional (WASD/arrows) and action key events, supporting diagonal movement when enabled. Configuration is handled via \KeyboardConfig\, which lets users enable/disable keyboard input, specify accepted keys, and choose between arrow keys, WASD, or both for directional controls. A \KeyboardEventListener\ mixin is provided for game components to receive and handle keyboard events.

lib/input/keyboard · high confidence

New lighting system with configurable lights and visual effects

The \lib/lighting\ directory now contains a complete lighting subsystem, introducing \LightingComponent\ as the layer responsible for rendering light effects, \WithLighting\ as a mixin for game components to expose lighting capabilities, and \LightingApi\ to manage per-component light configuration. Users can now define circular or arc-shaped lights with customizable colors, radii, blur borders, and pulsing animations via \LightingConfig\, allowing for dynamic lighting interactions within the game world.

lib/lighting · high confidence

New manual dungeon map example with joystick and keyboard controls

Added a new example page (\GameManualMap\) demonstrating a dungeon map setup in the Bonfire engine. This example features a procedurally generated tile-based map with walls, floors, and decorations (barrels, chests, spikes, torches), along with enemy spawning logic via a custom controller. It showcases manual control configuration by combining a directional joystick with action buttons and a keyboard input handler (spacebar for attack) within the \BonfireWidget\.

_example/lib/pages/mini\_games/manual\map · high confidence

New map utility infrastructure for asset and layer management

Added a set of new utility classes in lib/map/util to support map rendering and asset handling. This includes MapAssetsManager for caching and loading sprites and animations, LayerMapper and MapLayerMapper for converting map data into game components, ServerImageLoader for fetching and caching images from remote URLs, and WorldMapReader as a factory for reading Tiled and Spritefusion map formats from assets or network sources.

lib/map/util · high confidence

New matrix-based terrain map generation system

Introduces a new \MatrixMapGenerator\ and associated classes (\MatrixLayer\, \TerrainBuilder\, \MapTerrain\) in the \lib/map/matrix\_map\ directory, enabling the creation of tile maps from 2D numeric matrices. This system supports axis inversion for easier array visualization, automatic sprite selection from sprite sheets based on tile adjacency (corners, edges, centers), and configurable collision hitboxes per terrain type.

_lib/map/matrix\map · high confidence

New modular input system with mouse, gesture, and player controller support

The library now exposes a comprehensive input handling module that adds support for mouse gestures (hover, scroll, and click events via the new MouseEventListener mixin), unified pointer event propagation through a new PointerDetector mixin, and a structured PlayerController system for managing joystick directions and action events. This change also introduces dedicated gesture handling for drag, pinch, and tap interactions, providing a more granular and extensible foundation for user input in the game engine.

lib/input · high confidence

New player and map transition components for the multi-scenario mini-game

The multi-scenario mini-game now includes a dedicated GamePlayer component that handles joystick-based movement intensity and defines a specific rectangular hitbox for collision detection. Additionally, a MapSensor component has been added to enable seamless navigation between game maps; when a player enters the sensor's area, the game automatically transitions to the target map while preserving the player's position and facing direction.

_example/lib/pages/mini\_games/multi\scenario/components · high confidence

New random map generation example for mini-games

The mini-games section now includes a new 'Random Map' example that procedurally generates a game world using Perlin noise. This example introduces a map generator that creates terrain tiles (water, sand, grass) and places decorative elements like trees, alongside a dedicated noise generator to handle the procedural data. The example game widget integrates these components to display the generated map within the Bonfire engine, demonstrating how to use player controllers and camera configurations with dynamically created game maps.

_example/lib/pages/mini\_games/random\map · high confidence

New scene builder action components for game sequences

Added six new action classes to the scene builder system to support complex game sequences: AwaitSceneAction for waiting on async operations, CallbackSceneAction for executing code until a completion callback is triggered, CameraSceneAction for animating camera movements to positions or targets, DelaySceneAction for pausing sequences, MoveToPositionSceneAction for moving game components to specific coordinates, and MoveWhileSceneAction for continuous movement based on runtime conditions.

_lib/scene\builder/actions · high confidence

New simple mini-game example with player, enemy, and map integration

The example app now includes a new mini-game demo located at \example/lib/pages/mini\_games/simple\_example\. This demo introduces a \SimpleExampleGame\ widget that configures a \BonfireWidget\ with a joystick-controlled player (\MyPlayer\), enemies (\MyEnemy\) that utilize random movement and collision, and a Tiled map (\mapa2.json\) featuring object spawning for health potions and draggable barrels. The entry point demonstrates how to wire together player controllers, map objects, and game components in a single, self-contained example.

_example/lib/pages/mini\_games/simple\example · high confidence

New tiled map mini-game example with multi-controller support

The example application now includes a new \GameTiledMap\ widget that demonstrates rendering a Tiled map with interactive game objects (goblins, torches, barrels, spikes, columns, chests, critters, and wizards). This example introduces support for multiple player controllers, allowing users to control the character via either an on-screen joystick (with melee and range attack actions) or a keyboard (using arrow keys, WASD, and spacebar). The game features a dark lighting overlay and a health bar interface, providing a complete playable demo for the Bonfire engine's tiled map capabilities.

_example/lib/pages/mini\_games/tiled\map · high confidence

New top-down mini-game example with interactive physics and lighting

Added a new top-down game example that demonstrates a player-controlled soldier with directional melee attacks, zombie enemies with random movement and vision-based AI, and interactive furniture (armchairs) that can be pushed using physics forces. The example also showcases integrated lighting effects, collision handling, and joystick-based input controls within the Bonfire engine.

_example/lib/pages/mini\_games/top\_down\game · high confidence

New utility components and helpers for game logic and rendering

This release introduces a comprehensive set of new utility classes in the lib/util directory to support game development. Key additions include BarLifeComponent for rendering customizable health bars, DamageHitbox for managing damage-over-time and collision-based attacks, and FollowerWidget for overlaying Flutter UI elements that track in-game entities. The update also adds ComponentSpawner for periodic entity generation, QuadTree for efficient spatial queries, and various helper utilities such as BonfireUtil for angle/direction math, IntervalTick for timed events, and ValueGeneratorComponent for animated value transitions. These components provide foundational tools for building game mechanics, UI overlays, and performance-optimized spatial logic.

lib/util · high confidence

New utility constants and enums for multi-scenario mini-games

The multi-scenario mini-games example now includes dedicated utility files to manage game configuration. A new constants file defines the default tile size (32.0) and provides asset paths for two map biomes, while a new enum explicitly lists the available biome identifiers (none, biome1, biome2). These additions standardize how map data and asset references are handled within this specific example location.

_example/lib/pages/mini\_games/multi\scenario/utils · high confidence

New utility extensions for game logic and rendering

Added a new set of utility extensions in lib/util/extensions to simplify common operations. ColorExtensions allows setting opacity on colors. RectExt provides methods for vector conversion, overlap detection, and inflation/deflation. SpriteFutureExt and FutureSpriteAnimationExt enable converting futures of sprites or animations into widgets. ImageExtensions adds methods to create sprite animations, get sprites, overlap images, and flip animations. Joystick extensions provide radial angle calculations for directional events. MovementExtensions introduces methods for moving towards targets, keeping distance, and positioning while maintaining distance, with support for axis restriction. IntIntExtensions helps with neighbor checks for coordinate pairs. PositionComponentExt simplifies accessing left, right, top, and bottom properties. ViewportExt provides a unified way to get the scale from different viewport types.

lib/util/extensions · high confidence

Support for infinite Tiled maps and layer ordering

Users can now load maps that repeat infinitely in any direction using the new \WorldMapInfiniteByTiled\ component, which treats a small Tiled map as a repeating pattern and manages chunk loading/unloading to keep memory bounded. Additionally, the \WorldMapByTiled\ component now respects the \type=below\ layer flag to correctly handle Tiled layer ordering, ensuring decorations and objects are rendered with the correct priority relative to tile layers.

lib/map/tiled · high confidence

Support for loading Spritefusion maps from assets and network

Users can now load Spritefusion-style maps using two new reader implementations: \SpritefusionAssetReader\ for loading map data from local application assets, and \SpritefusionNetworkReader\ for fetching maps from remote URLs with optional HTTP headers and caching support. These readers integrate with the existing \WorldMapReader\ interface to provide a unified way to access map data regardless of its source.

lib/map/spritefusion/reader · high confidence

Support for loading Tiled maps from network URLs

Users can now load Tiled map data from remote HTTP/HTTPS sources, not just local assets. The new TiledNetworkReader fetches map JSON, tilesets, and layer images from a specified URI, caching them in memory and supporting orthogonal orientation. It also allows passing custom HTTP headers for authentication or other network requirements.

lib/map/tiled/reader · high confidence

Behavioural changes

Bonfire 4.0 introduces a new mixin-based API structure

The engine has been refactored to use a new mixin-based architecture (e.g., \WithLife\, \WithJumper\, \WithAttack\) that replaces the previous component-based approach. This change introduces dedicated API objects (such as \LifeApi\ and \JumperApi\) for managing game logic, adds new capabilities like A\* pathfinding (\WithPathFinding\) and per-cell movement (\WithMovePerCell\), and standardizes naming conventions with \With\ prefixes for all mixins.

lib/mixins · high confidence

Bonfire 4.0: API-first mixin architecture and simplified movement system

Bonfire 4.0 introduces a major API restructuring to improve developer experience. Most mixins (e.g., Jumper, Sensor, PathFinding, Attack) now follow an API-first pattern, exposing functionality through named objects (e.g., \jumper.jump()\) instead of polluting the component namespace. The \Movement\ mixin is rewritten to be velocity-based and simplified, with several legacy members removed. Additionally, collision is now event-driven via \WithCollision\, and a new behavior tree system is introduced. The library also upgrades to Flame ^1.38.0.

(repo-wide) · high confidence

Bonfire library restructured with comprehensive public API exports

The lib/bonfire.dart entry point has been completely rewritten to replace the previous placeholder Calculator class with a full suite of exports. This change exposes the library's core modules, including game components, mixins (such as movement, collision, life, and vision), input handling, camera controls, map systems (Tiled, SpriteFusion, Matrix), and UI widgets. It also re-exports key Flame packages (collisions, components, effects, geometry, etc.) to simplify dependency management for consumers, effectively establishing the public API surface for the Bonfire engine.

lib · high confidence

Introduces new BonfireCamera with configurable behavior and effects

The camera system has been replaced with a new \BonfireCamera\ implementation that extends Flame's \CameraComponent\. This change introduces a dedicated \CameraConfig\ class allowing users to configure movement windows, map area constraints, zoom, angle, and follow speed. The new camera supports animated transitions for position, zoom, and angle, as well as a shake effect for visual feedback. It also includes a custom follow behavior that respects the configured movement window to prevent jittery camera movement.

lib/camera · high confidence

New example app navigation drawer with collapsible sections

The example application now includes a structured navigation drawer (home\_drawer.dart) that displays a version header and a list of collapsible sections. Each section can be expanded or collapsed with an animation, and selecting an item within a section triggers a callback and closes the drawer. This replaces the previous drawer implementation with a new widget hierarchy (HomeDrawer, SectionDrawerWidget, ItemDrawerWidget) that supports grouped navigation items.

example/lib/pages/home/widgets/drawer · high confidence

New object component hierarchy and behavior updates

The lib/objects area introduces a new base GameObject class and specialized components including AnimatedGameObject, FollowerGameObject, AnimatedFollowerGameObject, and FlyingAttackGameObject. FlyingAttackGameObject now uses angle-based movement and destruction logic, applies damage via the WithLife mixin's handleAttack method, and prevents collision destruction when colliding with WithSensor components. The lifecycle callback onDestroy is now correctly invoked only when the object is actually being removed.

lib/objects · high confidence

Refactored collision system with new BodyType enum and dedicated collision API

The collision handling in lib/collision has been restructured to introduce a new BodyType enum (dynamic and static) and a dedicated CollisionApi class. This change replaces the previous SimpleElasticCollision approach with a more explicit WithCollision mixin and a robust collision resolution system that supports custom callbacks for blocking movement, handling blocked events, and resolving velocity reflections. Users will now interact with a clearer API for managing collision states and behaviors, with static bodies preventing movement and dynamic bodies reflecting velocity upon impact.

lib/collision · high confidence

Refactored game engine base with explicit collision configuration and gesture handling

The core game engine in lib/base has been restructured to improve performance and configurability. The new BaseGame class now uses a reusable list to collect gesture-handling components during the update loop, reducing per-frame allocations, and explicitly manages pointer and keyboard event dispatching. A new BonfireCollisionConfig system allows users to choose between a default collision detection setup and a QuadTree-based broadphase via BonfireQuadTreeCollision or BonfireWithCollision, enabling better performance for complex scenes. Additionally, the engine now supports configurable background colors and integrates lighting and color filter components directly into the camera viewport's HUD layer.

lib/base · high confidence

Refactored map rendering and collision system with new base components

The map rendering and collision logic in lib/map/base has been restructured around new base classes: GameMap, Layer, Tile, TileComponent, TileLayerComponent, and TileWithCollision. TileComponent now handles sprite and animation rendering with bleeding-pixel correction, while TileWithCollision adds ShapeHitbox support for interactive tiles. TileLayerComponent manages tile visibility and performance via a QuadTree, supporting dynamic chunk loading for infinite maps. GameMap provides a unified interface for layer management, map bounds, and rendering priority, with specific support for infinite worlds and camera movement constraints.

lib/map/base · high confidence

Tree decoration now has solid collision hitbox

The tree decoration component in the random map mini-game now includes a solid rectangular hitbox, ensuring that players cannot walk through the tree. This change fixes collision detection issues where the tree previously allowed passage, improving the physical interaction within the game world.

_example/lib/pages/mini\_games/random\map/decoration · high confidence

Test coverage

Added initial widget test file; Added test helpers for Bonfire game components; Initial test suite for core game mechanics.

Dependencies

Bonfire 4.0.0 release with Flame 1.38.2 and Dart 3.4+ support

The Bonfire package has been updated to version 4.0.0, requiring Dart SDK \>=3.4.0 and Flutter \>=3.22.0. The core dependency on the Flame game engine has been bumped to version 1.38.2, and the \a\_star\_algorithm\ dependency has been added at version 0.4.1. The \http\ dependency is now explicitly set to ^1.6.0, and the development linting tool has switched from \flutter\_lints\ to \flame\_lint\ version 1.2.1. Additionally, the package metadata has been updated with a new description, homepage, repository URL, and issue tracker link.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 67.

Lenses

  • Code Health 90
  • Architecture 96
  • Maturity 59
  • Readiness 62
  • Security 75
  • Domain Modelling 100

Changes since last survey

  • 300 commits — 260 feature/other, 40 fixes

By area

  • (root) — 80 commits
  • (repo) — 46 commits
  • lib/mixins — 42 commits
  • example/lib — 32 commits
  • .github/workflows — 11 commits
  • lib/util — 11 commits
  • awesome/README.md — 10 commits
  • lib/map — 10 commits
  • lib/base — 6 commits
  • lib/behavior — 6 commits
  • lib/objects — 6 commits
  • games/README.md — 5 commits
  • awesome/flappy_bird — 4 commits
  • awesome/platform_game — 4 commits
  • games/flappy_bird — 3 commits
  • lib/collision — 3 commits
  • awesome/turn_game — 2 commits
  • example/.metadata — 2 commits
  • example/android — 2 commits
  • example/pubspec.lock — 2 commits

Notable commits

  • fix: Fix #577
  • fix: Fix minimap issues with non-1.0 zoom
  • fix: Merge pull request #601 from juarezfranco/bugfix/tiled-oversized-and-layer-order
  • fix: Merge pull request #607 from RafaelBarbosatec/revert-606-master
  • fix: Merge pull request #608 from RafaelBarbosatec/revert-607-revert-606-master
  • fix: Merge pull request #609 from RafaelBarbosatec/copilot/revert-merge-v4-0-0
  • fix: Merge pull request #619 from RafaelBarbosatec/fix/v4-collision-bug-tests-migration
  • fix: Revert "Merge branch 'v4.0.0' into master"
  • fix: Revert "Revert "update""
  • fix: Revert "update"
  • fix: bump version to 4.0.0-beta.5, fix issue 592, and enhance path finding with area consideration
  • fix: chore: fix
  • fix: chore: fix imports
  • fix: chore: fix lint
  • fix: chore: fix lint
  • fix: chore: fix onGameMounted
  • fix: chore: fix size barlife
  • fix: chore: some fix
  • fix: chore: update changelog and version to 3.13.5, fix padding in BarLifeComponent
  • fix: fix some lint
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

RafaelBarbosatec/bonfire was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 96cd4a86949be072b06c98c271c4cf4becd8b4ea — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.