from static method
Accepts a String, a TPermission or null.
Implementation
static TPermission? from(Object? value) => switch (value) {
null => null,
TPermission p => p,
String s => TPermission(s),
_ => throw ArgumentError('permission must be a String or TPermission, got ${value.runtimeType}'),
};