Skip to content

📊 Health — Internal / Reporting

📦 Folder Overview

This folder contains internal reporting helpers used to translate internal pipeline data into stable public-facing shapes.

These types are not part of the public API surface and should not be depended on directly by gameplay code.


🎯 Purpose

Internal reporting helpers exist to:

  • Convert internal pipeline data (DamageContext, etc.) into safe, minimal public snapshots
  • Decouple internal processing structures from public data contracts
  • Keep HealthSystem focused on orchestration

🧩 What Lives Here

This folder contains:

  • Internal data-mapping helpers
  • Translation logic between internal state and public contracts

It does not contain:

  • A public reporting API
  • A telemetry system
  • Supported extension points

🧩 Components

LastDamageReportFactory

Internal helper for constructing LastDamageReport instances.

Responsibilities:

  • Converts a DamageContext into a public, stable snapshot
  • Extracts only supported fields:

  • requested amount

  • final applied amount
  • cancelled state
  • bypass flags
  • attacker reference
  • source identifier
  • kill-command marker

Behaviour:

  • Does not mutate input
  • Produces a minimal, safe data shape
  • Ensures external consumers do not rely on full DamageContext

⚠️ Important Notes

Boundaries

Do not:

  • Use DamageContext directly outside internal logic
  • Call this factory from gameplay code
  • Treat this as a reporting system API
  • Add gameplay logic here

If damage information is needed, use:

HealthSystem.TryGetLastDamageReport(...)

🧠 Usage Guidance

  • Use public snapshot types (LastDamageReport) for external systems
  • Treat internal contexts as implementation detail
  • Keep reporting logic separate from gameplay logic

🚫 Not for Production Use

This folder is not intended as a gameplay integration surface.


  • Health System
  • Abstractions / Contracts
  • Lifecycle handlers