evaluate method
Full evaluation with reasons (missing permissions + unmet prerequisites).
Implementation
CapabilityResult evaluate(Capability capability) {
return CapabilityResult(
capability: capability,
isAvailable: isAvailable(capability),
missingPermissions: missingPermissions(capability),
unmetPrerequisites: unmetPrerequisites(capability),
);
}