MorphPlanFeatures class
What a given MorphPlan is allowed to do. The runtime gate is
always wants AND allows:
• wants = the dev's opt-in via MorphFeatures on the provider
• allows = an instance of this class derived from the resolved plan
The dev never instantiates this directly — it lands on
BuildContext.morphPlanFeatures once the validator has resolved
the plan. PlanGate / requireMorphProfessional use it to gate UI access.
Naming note: this class is MorphPlanFeatures (not
MorphFeatures) because the latter is already the dev-facing
opt-in flag bag from the commercial-features module. Keeping them
distinct means callers can pattern-match wants && allows without
type collisions.
Mirrors PlanService.PlanFeatures in chameleon-backend — when a
flag moves between tiers, both files have to change in lockstep.
- Annotations
Constructors
- MorphPlanFeatures({required MorphPlan plan})
-
const
Properties
- aiInsights → bool
-
no setter
- analyticsDashboard → bool
-
no setter
- batteryAware → bool
-
no setter
- batteryAwareUI → bool
-
no setter
- behavioralAnalyticsLocal → bool
-
no setter
- behavioralSuggestions → bool
-
no setter
- behavioralV2 → bool
-
V2 behavioral intelligence — zone reorder, morphing, suggestion
engine. The umbrella flag every other Pro+ V2 widget keys off.
no setter
- chargePatternPredictor → bool
-
no setter
- circadianRhythm → bool
-
no setter
- claudeInsights → bool
-
no setter
- customInfrastructure → bool
-
no setter
- darkModeAuto → bool
-
no setter
- dashboardExporter → bool
-
no setter
- fatigueBaseline → bool
-
no setter
- fatigueCognitiveDetection → bool
-
no setter
- fatigueDetection → bool
-
no setter
- gpsAccelerometerFusion → bool
-
no setter
- gpsContext → bool
-
no setter
- gpsContextUI → bool
-
no setter
- gripDetection → bool
-
no setter
- hashCode → int
-
The hash code for this object.
no setteroverride
- industryPresets → bool
-
no setter
- interruptionRecoveryAdvanced → bool
-
no setter
- interruptionRecoveryBasic → bool
-
Scroll position only — no checkout/transfer/KYC contexts.
no setter
- metricsReporter → bool
-
no setter
- morphZone → bool
-
no setter
- multiStepWorkflow → bool
-
no setter
-
no setter
-
no setter
- plan → MorphPlan
-
final
- recoveryAdvanced → bool
-
Rich context-aware recovery (cart, transfer, KYC step, …).
no setter
- recoveryContextual → bool
-
no setter
- reorderableColumn → bool
-
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sla → bool
-
no setter
- sonnetTheme → bool
-
Premium Claude Sonnet for theme generation. Free silent-degrades
to Haiku server-side (same JSON shape).
no setter
- sso → bool
-
no setter
- suggestionEngine → bool
-
no setter
- systemPreferences → bool
-
no setter
- themeGeneration → bool
-
no setter
- whiteLabel → bool
-
no setter
Methods
-
check(
String featureName, bool condition, MorphPlan requiredPlan) → bool -
Returns
conditionand, when blocked in debug builds, prints a pointer to the upgrade URL. Used internally by thecheck…shortcuts below. Production builds never log (the assert closure is stripped). -
checkAiInsights(
) → bool -
checkAnalyticsDashboard(
) → bool -
checkBatteryAware(
) → bool -
checkBatteryAwareUI(
) → bool -
checkBehavioralSuggestions(
) → bool -
checkClaudeInsights(
) → bool -
checkFatigueDetection(
) → bool -
checkGpsContext(
) → bool -
checkGripDetection(
) → bool -
checkSuggestionEngine(
) → bool -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
override