Runtime/Common¶
Shared framework glue. Not a gameplay integration surface.
Runtime/Common exists to keep RevFramework systems decoupled by providing small cross-cutting seams, utilities, and “plumbing” code used across multiple systems.
This folder is not where you build game features.
Not a Supported Extension Point¶
- ❌ Not intended for gameplay integration
- ❌ Not intended as a primary public API surface
- ❌ Not a stable extension contract (contents may evolve as systems are refined)
If you’re integrating a system into your game:
👉 Start in Runtime/Systems/<System> and follow that system’s: - Public API - Mental Model - FAQ - Samples - Teachables
Teachables live in:
RevFramework/Teaching
Samples live in:RevFramework/Samples
What Lives Here (so you don’t panic when you see it)¶
1) Cross-system seams and small interfaces¶
Small, dependency-light contracts used by multiple systems (or used to avoid hard references between optional modules).
Examples include: - IDamageable, cooldown factors/sinks, movement factors - ITimeProvider (+ UnityTimeProvider, ManualTimeProvider) - authority guards and shared gating helpers
If you need a supported integration point, it should be documented on the System’s Public API page — not inferred from Common.
2) “Glue” utilities that keep optional modules optional¶
Compatibility and decoupling helpers that allow systems to remain modular and work across different Unity setups.
Examples include: - input / physics compatibility shims - duck-typed helpers for optional richer APIs - ResolveUtility (decoupled lookups)
If you can’t do something through documented public seams, you shouldn’t be doing it.
If you believe a supported seam should exist: reach out — we’ll review it.
3) Panel / UX infrastructure¶
Shared IMGUI helpers used by Teachables and debug panels: - PanelBase, TeachablePanelBase - layout helpers and style sizing - dependency guards and feedback utilities (PanelDependencyGuard, PanelFeedbackUtility) - OpResult / ReasonText mapping helpers
This supports the teaching/debug experience without pushing UI concerns into system modules.
4) Small sample-friendly components and adapters¶
Simple relays/adapters used by demo scenes or lightweight setups: - CurrencyServiceRelay - StableId - basic team providers, audio channels, etc.
These exist to keep demos usable without forcing your production architecture.
Design Intent¶
Common is a shared substrate:
- Systems depend on Common
- Common must not depend on Systems
- Nothing here should force system-to-system references
If you add something here:
- keep it small
- keep it boring
- keep it dependency-light
- and double-check it doesn’t belong inside a specific system module instead
TL;DR¶
This folder makes RevFramework tick — but it’s not where you build your game.
Use Runtime/Systems/<System> and the documented seams.
If you need a capability that isn’t exposed, ask — seams are added deliberately.